#include const long long mod = 1000000000; long long nCr(long long N, long long R) { long long **dp; dp = new long long *[N + 1]; for (long long n = 0; n <= (N+1); n++) { dp[n] = new long long [N + 1]; for (long long r = 1; r <= n; r++) { if (n == 0 || r == 0 || n == r) { dp[n][r] = 1; } else { dp[n][r] = (dp[n - 1][r] + dp[n -1][r - 1]) % mod; } } } return (dp[N+1][R+1]) % mod; } int main() { long long n, m, a; std::cin >> n; std::cin >> m; a = ((n / 1000) % m) % mod; if (a > 0) std::cout << nCr(m, a) << std::endl; else std::cout << 1 << std::endl; }