#include<fstream>
using namespace std;
long long n,k,t[201][201][101];
ifstream f("perm.in");
ofstream g("perm.out");
void ad(int a,int b,int c,int d)
{int r=0,l=1;
t[a][b][0]=max(t[a][b][0],t[c][d][0]);
for(;l<=t[a][b][0];l++)
{t[a][b][l]+=t[c][d][l]+r;
r=t[a][b][l]/10000;
t[a][b][l]%=10000;
}
while(r)
{t[a][b][l]=r%10000;
r/=10000;
l++;
}
t[a][b][0]=l-1;
}
void in(int a,int b,int p)
{int r=0,l=1;
for(;l<=t[a][b][0];l++)
{t[a][b][l]*=p;
t[a][b][l]+=r;
r=t[a][b][l]/10000;
t[a][b][l]%=10000;
}
while(r)
{t[a][b][l]=r%10000;
r/=10000;
l++;
}
t[a][b][0]=l-1;
}
int main()
{f>>n>>k;
t[0][0][0]=1;
t[0][0][1]=1;
if(k<=n/2+n%2)
{for(int i=1;i<k;i++)
for(int j=1;j<=i;j++)
{ad(i,j,i-1,j);
in(i,j,i-1);
ad(i,j,i-1,j-1);
}
for(int i=k;i<=n-k+1;i++)
for(int j=1;j<=k;j++)
{ad(i,j,i-1,j);
in(i,j,i-1);
ad(i,j,i-1,j-1);
}
for(int i=n-k+2;i<=n;i++)
for(int j=i-n+k;j<=k;j++)
{ad(i,j,i-1,j);
in(i,j,i-1);
ad(i,j,i-1,j-1);
}
}
else
{for(int i=1;i<=n-k;i++)
for(int j=1;j<=i;j++)
{ad(i,j,i-1,j);
in(i,j,i-1);
ad(i,j,i-1,j-1);
}
for(int i=n-k+1;i<=k;i++)
for(int j=1;j<=i;j++)
{ad(i,j,i-1,j);
in(i,j,i-1);
ad(i,j,i-1,j-1);
}
for(int i=k+1;i<=n;i++)
for(int j=i-n+k;j<=k;j++)
{ad(i,j,i-1,j);
in(i,j,i-1);
ad(i,j,i-1,j-1);
}
}
g<<t[n][k][t[n][k][0]];
for(int i=t[n][k][0]-1;i>=1;i--)
g<<t[n][k][i]/1000<<t[n][k][i]/100%10<<t[n][k][i]/10%10<<t[n][k][i]%10;
return 0;
}