#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;
}