#include <stdio.h>
#include <stdlib.h>
#include <string.h>
typedef unsigned long long ULL;
int cal(int n,int k,ULL* res)
{
ULL calBuf[2][53];
ULL* resBuf;
ULL* workBuf;
ULL* swapBuf;
int i,j;
resBuf=&calBuf[0][1];
workBuf =&calBuf[1][1];
if(!((n>=0||n<=50)&&(k>=0||k<=50)))return -1;
memset(calBuf,0,sizeof(calBuf));
resBuf[0]=1;
for(i=0; i<=n; i++)
{
for(j=0;j<=i;j++)
workBuf[j]=resBuf[j-1]+resBuf[j];
swapBuf=workBuf;
workBuf=resBuf;
resBuf=swapBuf;
}
(*res)=resBuf[k];
return 1;
}
int main()
{
int n,k;
int sta;
ULL res;
scanf("%d %d",&n,&k);
sta=cal(n,k,&res);
if(sta)
printf("%llu\n",res);
else
printf("Incorrect parameters.");
getchar();
return 0;
}