#include <cstdio>
unsigned int dp[1000][1001];
void initDP(int n, int k)
{
for (size_t i = 0; i <= n; i++)
{
dp[0][i] = 1;
}
for (size_t i = 1; i <= k; i++)
{
dp[i][1] = 0;
}
}
int countPermutation(int n, int k)
{
initDP(n, k);
for (size_t row = 1; row <= k; row++)
{
for (size_t col = row + 1; col <= n; col++)
{
dp[row][col] = 0;
dp[row][col] += dp[row][col - 1] * (row + 1);
dp[row][col] += dp[row - 1][col - 1] * (col - row);
dp[row][col] %= 2017;
}
}
return dp[k][n];
}
int main()
{
int n, k;
scanf("%d%d", &n, &k);
printf("%d", countPermutation(n, k));
return 0;
}