#include #include #include using namespace std; #define REP(i,n) for(int i=0;i<(n);++i) #define REPS(i,s,t) for(int i=(s);i<(t);++i) #define INF 2000000007 #define MOD 1000000000 #define MAX 100005 typedef unsigned int uint; typedef unsigned long long int ull; typedef long long int ll; int dp[MAX][MAX]; void pascal(int n){ dp[1][0]=dp[1][1]=1; REPS(i,2,n+1){ dp[i][0] = 1; REPS(j,1,i+1){ dp[i][j] = (dp[i-1][j-1] + dp[i-1][j])%MOD; } dp[i][i] = 1; } } int main(){ ull N;cin>>N; int M;cin>>M; N /= 1000; int R = N%M; R = min(R,M-R); // M C R pascal(M); cout << dp[M][R] << endl; return 0; }