#include<iostream.h>
int n,p,used[2000];
unsigned long int m;

void Hristian(int n1,int p1,int k);

int main()
{
	unsigned long int r;
	cin>>n>>p;
	if(n==p)
	{
		cout<<1;
		return 0;
	}
	Hristian(n,p,-1);
	r=m%1020847;
	cout<<r+n-p<<endl;
	return 0;
}

void Hristian(int n1,int p1,int k)
{
	 int i;
	 if(n1==p1)
	 {
		 for(i=0;i<n;i++)
			 if(!used[i]&&i<k)
				 return;
		 m++;
		 return;
	 }
	 if(p1==0)
	 {
		 for(i=0;i<n;i++)
			 if(!used[i]&&i>k)
				 return;
		 m++;
		 return;
	 }
	 for(i=0;i<n;i++)
	 {
		 if(!used[i])
		 {
			 if(i<k)
			 {
				 used[i]=1;
				 Hristian(n1-1,p1,i);
				// used[i]=0;
			 }
			 else
			 {
				 used[i]=1;
				 Hristian(n1-1,p1-1,i);
				 used[i]=0;
			 }
		 }
	 }
}