#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;

#define RREP(i,s,e) for (i = e-1; i >= s; i--)
#define rrep(i,n) RREP(i,0,n)
#define REP(i,s,e) for (i = s; i < e; i++)
#define rep(i,n) REP(i,0,n)
#define INF 1e8

typedef long long ll;

int main() {
    int i, j, m, ans;
    ll n;
    vector<int> dp[10001];
    rep (i,10001) dp[i].resize(10001);
    cin >> n >> m;
    n /= 1000;
    n %= m;
    rep (i,m+1) {
        dp[i][0] = 1;
        REP (j,1,i+1) {
            dp[i][j] = dp[i-1][j-1] + dp[i-1][j];
            dp[i][j] %= 1000000000;
        }
    }
    cout << dp[m][n] << endl;
    return 0;
}