#include #include #include #include #include #include #include #include #include #include #include #include #include #define all(x) (x).begin(),(x).end() #define rall(x) (x).rbegin(),(x).rend() using namespace std; typedef long long ll; typedef pair pi; typedef pair pl; typedef pair pls; ll mod = (ll)1e9; ll C[10010][10010]; void comb_table(ll N) { for (ll i = 0; i <= N; i++) { for (ll j = 0; j <= i; j++) { if (j == 0 || j == i) { C[i][j] = 1LL; } else { C[i][j] = C[i - 1][j - 1] + C[i - 1][j]; C[i][j] %= mod; } } } } int main() { ll N, M,left; cin >> N >> M; comb_table(M); left = N; N /= 1000; ll ans; if (N >= M) { N /= M; left -= M * N * 1000; left /= 1000; ans = C[M][left]; } else ans = C[M][N]; cout << ans << endl; return 0; }