/*#include<stdio.h>
int map[1000][1000] = {0};
int f(int x,int y)
{
if(x == 1 && y == 1)
{
return map[x][y] = 1;
}
if(map[x][y] != 0)
{
return map[x][y];
}
if(map[x][y]%2==0) return f(x,y-1)*2;
else return f(x-1,y)*2+1;
}
int main()
{
int x,y;
scanf("%d %d",&x,&y);
printf("%d", f(x,y));
}*/
/*
#include<stdio.h>
int x;
int f(int a,int b)
{
if (a == b)
{
return ("%d", x);
}
else
{
x++;
if (a>b)
{
f(a/2,b);
}
else
{
f(a,b/2);
}
}
}
int main()
{
int a,b;
scanf("%d %d",&a,&b);
printf("%d", f(a,b));
}
*/
/*
#include<stdio.h>
int f(int a,int b)
{
if (a == b)
{
return 0;
}
else
{
if (a>b)
{
return f(a/2,b)+1;
}
else
{
return f(a,b/2)+1;
}
}
}
int main()
{
int a,b;
scanf("%d %d",&a,&b);
printf("%d", f(a,b));
}
*/
/*
#include<stdio.h>
int map[21] = {0};
int f(int x)
{
if(x==1)
{
return map[x] = 1;
}
else if(x==2)
{
return map[x] = 2;
}
else if(x==3)
{
return map[x] = 3;
}
if(map[x] != 0)
{
return map[x];
}
return map[x] = f(x-1) + f(x-2);
}
int main()
{
int x;
scanf("%d", &x);
printf("%d", f(x));
}
*/
#include<stdio.h>
long long int f(long long int x,long long int y)
{
if(x==y+2)
{
return y+2;
}
return f(x-1,y)*x;
}
int main()
{
int x;
int y;
scanf("%lld %lld",&x,&y);
printf("%lld",f(x,y)/f(y,1));
}