/* ------------------------------------*/
/* Name: Aseem Chakrabarthy */
/* Institute:University Of Chittagong */
/* Dept: CSE */
/* Email: aseem.cse.cu@gmail.com */
/* ------------------------------------*/
#include<bits/stdc++.h>
using namespace std;
#define FR0(i,N) for(i=0;i<(N);i++)
#define FR1(i,N) for(i=1;i<=(N);i++)
#define FRN(i,k,N) for(i=k;i<(N);i++)
#define pf printf
#define db double
#define max3(a,b,c) max(max(a,b),c)
#define min3(a,b,c) min(min(a,b),c)
#define sci(n) scanf("%d",&n)
#define scl(n) scanf("%lld",&n)
#define scf(n) scanf("%f",&n)
#define scd(n) scanf("%lf",&n)
#define scs(s) scanf("%s",&s)
#define scll(n) scanf("%%I64d",&n)
#define PI acos(-1.0)
#define LL long long
#define MX 1000005
#define MOD 1000000007
typedef long long int ll;
bool status[1100002];
int main()
{
ll n,r,i,j,res,max,min;
map<ll,ll>mymap;
while(cin>>n>>r)
{
mymap.clear();
if(n==0 && r==0) break;
if(r>n-r)
{
max=r;
min=n-r;
}
else
{
max=n-r;
min=r;
}
res=1;
for(i=n; i>max; i--)
{
res*=i;
for(j=2; j<=min; j++)
{
if(res%j==0 && mymap[j]!=1)
{
res/=j;
mymap[j]=1;
}
}
}
cout<<res<<endl;
}
}
LyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KLyogTmFtZTogQXNlZW0gQ2hha3JhYmFydGh5ICAgICAgICAgICAgKi8KLyogSW5zdGl0dXRlOlVuaXZlcnNpdHkgT2YgQ2hpdHRhZ29uZyAgKi8KLyogRGVwdDogQ1NFICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KLyogRW1haWw6IGFzZWVtLmNzZS5jdUBnbWFpbC5jb20gICAgICAgKi8KLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KI2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKI2RlZmluZSBGUjAoaSxOKSBmb3IoaT0wO2k8KE4pO2krKykKI2RlZmluZSBGUjEoaSxOKSBmb3IoaT0xO2k8PShOKTtpKyspCiNkZWZpbmUgRlJOKGksayxOKSBmb3IoaT1rO2k8KE4pO2krKykKI2RlZmluZSBwZiBwcmludGYKI2RlZmluZSBkYiBkb3VibGUKI2RlZmluZSBtYXgzKGEsYixjKSBtYXgobWF4KGEsYiksYykKI2RlZmluZSBtaW4zKGEsYixjKSBtaW4obWluKGEsYiksYykKI2RlZmluZSBzY2kobikgc2NhbmYoIiVkIiwmbikKI2RlZmluZSBzY2wobikgc2NhbmYoIiVsbGQiLCZuKQojZGVmaW5lIHNjZihuKSBzY2FuZigiJWYiLCZuKQojZGVmaW5lIHNjZChuKSBzY2FuZigiJWxmIiwmbikKI2RlZmluZSBzY3Mocykgc2NhbmYoIiVzIiwmcykKI2RlZmluZSBzY2xsKG4pIHNjYW5mKCIlJUk2NGQiLCZuKQojZGVmaW5lIFBJIGFjb3MoLTEuMCkKI2RlZmluZSBMTCBsb25nIGxvbmcKI2RlZmluZSBNWCAxMDAwMDA1CiNkZWZpbmUgTU9EIDEwMDAwMDAwMDcKdHlwZWRlZiBsb25nIGxvbmcgaW50IGxsOwpib29sIHN0YXR1c1sxMTAwMDAyXTsKCmludCBtYWluKCkKewogICAgbGwgbixyLGksaixyZXMsbWF4LG1pbjsKICAgIG1hcDxsbCxsbD5teW1hcDsKICAgIHdoaWxlKGNpbj4+bj4+cikKICAgIHsKICAgICAgICBteW1hcC5jbGVhcigpOwogICAgICAgIGlmKG49PTAgJiYgcj09MCkgYnJlYWs7CiAgICAgICAgaWYocj5uLXIpCiAgICAgICAgewogICAgICAgICAgICBtYXg9cjsKICAgICAgICAgICAgbWluPW4tcjsKICAgICAgICB9CiAgICAgICAgZWxzZQogICAgICAgIHsKICAgICAgICAgICAgbWF4PW4tcjsKICAgICAgICAgICAgbWluPXI7CiAgICAgICAgfQogICAgICAgIHJlcz0xOwogICAgICAgIGZvcihpPW47IGk+bWF4OyBpLS0pCiAgICAgICAgewogICAgICAgICAgICByZXMqPWk7CiAgICAgICAgICAgIGZvcihqPTI7IGo8PW1pbjsgaisrKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBpZihyZXMlaj09MCAmJiBteW1hcFtqXSE9MSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICByZXMvPWo7CiAgICAgICAgICAgICAgICAgICAgbXltYXBbal09MTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBjb3V0PDxyZXM8PGVuZGw7CiAgICB9Cn0KCgo=