N = int(input()) M = int(input()) a = N//1000//M b = N - (a * M) * 1000 c = b//1000 # d = (N - ((N//1000//M) * M) * 1000) //1000 def perm(n, k): result = 1 for i in range(1, k + 1): result *= (n - i + 1) result //= i return result def pascal(n, k): z = n+1 p = [[0 for _ in range(z)] for _ in range(z)] p[0][0] = 1 for x in range(1, z): for y in range(0, z): p[x][y] = (p[x-1][y-1] + p[x-1][y])%1000000000 return p[n][k] def pascal2(n, k): p = [0 for _ in range(n+1)] p[0] = 1 for x in range(1, n+1): for y in range(n, 0, -1): p[y] = (p[y-1] + p[y])%1000000000 return p[k] # print(pascal(M, c)) # print(M, c) # print(perm(M, c)%1000000000) # print(pascal(M, c)%1000000000) print(pascal2(M, c)%1000000000)