#include <bits/stdc++.h> #define p(s) cout<<(s)<<endl typedef long long ll; using namespace std; const ll mod=1e9; ll comb[10010][5010]; void combinationDP(int n){ for(int i=0; i < n + 1; i++){ for(int j=0; j < i + 1; j++){ if(j==0 || i==j) comb[i][j]=1; else comb[i][j]=comb[i-1][j-1]+comb[i-1][j]; comb[i][j]%=mod; } } } int main(){ ll n,m; cin>>n>>m; ll dist=n/1000/m; ll r=n-dist*1000*m; r/=1000; r=min(r,m-r); combinationDP(m); p(comb[m][r]); return 0; }