#include<iostream>
using namespace std;
int c[1000][1000];
int cc(int m,int n)
{
if(c[m][n]) return c[m][n];//如果计算过 则直接输出
//状态转移方程 c(m,n)=c(m-1,n-1)+c(m-1,n)
if(m==n || n==0) return 1;
if(n==1) return m;
return cc(m-1,n-1)+cc(m-1,n);
}
int main()
{
int m,n;
memset(c,0,sizeof(c));
while(cin>>m>>n && m)
{
cout<<cc(m,n)<<endl;
}
}