#define _CRT_SECURE_NO_WARNINGS
#define _USE_MATH_DEFINES
#include <iostream>
#include <map>
#include <list>
#include <cstdio>
#include <cmath>
#include <cstring>
#include <string>
#include <vector>
#include <algorithm>
#include <utility>
#include <queue>
#include <iomanip>
#define INF 1050000000

using namespace std;

long long nCr(long long n, long long r){
	long long P[10000];


	memset(P, 0, sizeof(P));
	
	P[0] = P[1] = 1;
	
	for (int i = 2; i <= n; i++) {
		for (int j = i; j > 0; j--) {
			P[j] = (P[j] + P[j - 1]) % 1000000000;
		}
	}

	return (P[r]);
}

int main(void)
{
	long long int n, m;
	long long int a;
	long long int ans = 1;

	cin >> n >> m;
	
	

	a = n - (((n / m) / 1000) * 1000) * m;
	a /= 1000;

	

	cout << nCr(m, a) << endl;

	return (0);
}