import java.util.*;
import java.lang.*;
import java.io.*;
class Ideone
{
static int mod=10000007;
static int max=10000;
static long fact[]=new long[max+1];
static long ifact[]=new long[max+1];
static long power(long base,int exp,int mod)
{
long result=1;
while(exp>0)
{
if(exp%2==1)
result=(result*base)%mod;
base=(base*base)%mod;
exp/=2;
}
return result;
}
public static void factorial()
{
fact[0]=1L;
for(int i=1;i<=max;i++)
{
fact[i]=(fact[i-1]*i)%mod;
}
ifact[0]=1L;
ifact[max]=power(fact[max],mod-2,mod);
for(int i=max-1;i>=1;i--)
ifact[i]=(ifact[i+1]*(i+1))%mod;
}
static long ncr(int n,int r)
{
if(n<r||r<0)return 0;
long res=fact[n];
res=(res*ifact[r])%mod;
res=(res*ifact[n-r])%mod;
return res;
}
{
factorial();
Scanner sc
=new Scanner
(System.
in); int n=sc.nextInt();
int r=sc.nextInt();
long ans=ncr(n,r);
}
}
aW1wb3J0IGphdmEudXRpbC4qOwppbXBvcnQgamF2YS5sYW5nLio7CmltcG9ydCBqYXZhLmlvLio7CgpjbGFzcyBJZGVvbmUKewogICAgc3RhdGljIGludCBtb2Q9MTAwMDAwMDc7CiAgICBzdGF0aWMgaW50IG1heD0xMDAwMDsKICAgIHN0YXRpYyBsb25nIGZhY3RbXT1uZXcgbG9uZ1ttYXgrMV07CiAgICBzdGF0aWMgbG9uZyBpZmFjdFtdPW5ldyBsb25nW21heCsxXTsKCiAgICBzdGF0aWMgbG9uZyBwb3dlcihsb25nIGJhc2UsaW50IGV4cCxpbnQgbW9kKQogICAgewogICAgICAgIGxvbmcgcmVzdWx0PTE7CiAgICAgICAgd2hpbGUoZXhwPjApCiAgICAgICAgewogICAgICAgICAgICBpZihleHAlMj09MSkKICAgICAgICAgICAgcmVzdWx0PShyZXN1bHQqYmFzZSklbW9kOwogICAgICAgICAgICBiYXNlPShiYXNlKmJhc2UpJW1vZDsKICAgICAgICAgICAgZXhwLz0yOwogICAgICAgIH0KICAgICAgICByZXR1cm4gcmVzdWx0OwogICAgfQoKICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBmYWN0b3JpYWwoKQogICAgewogICAgICAgIGZhY3RbMF09MUw7CiAgICAgICAgZm9yKGludCBpPTE7aTw9bWF4O2krKykKICAgICAgICB7CiAgICAgICAgICAgIGZhY3RbaV09KGZhY3RbaS0xXSppKSVtb2Q7CiAgICAgICAgfQogICAgICAgIGlmYWN0WzBdPTFMOwogICAgICAgIGlmYWN0W21heF09cG93ZXIoZmFjdFttYXhdLG1vZC0yLG1vZCk7CiAgICAgICAgZm9yKGludCBpPW1heC0xO2k+PTE7aS0tKQogICAgICAgIGlmYWN0W2ldPShpZmFjdFtpKzFdKihpKzEpKSVtb2Q7CiAgICB9CgogICAgc3RhdGljIGxvbmcgbmNyKGludCBuLGludCByKQogICAgewogICAgICAgIGlmKG48cnx8cjwwKXJldHVybiAwOwogICAgICAgIGxvbmcgcmVzPWZhY3Rbbl07CiAgICAgICAgcmVzPShyZXMqaWZhY3Rbcl0pJW1vZDsKICAgICAgICByZXM9KHJlcyppZmFjdFtuLXJdKSVtb2Q7CiAgICAgICAgcmV0dXJuIHJlczsKICAgIH0KCiAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmdbXSBhcmdzKXRocm93cyBqYXZhLmxhbmcuRXhjZXB0aW9uCiAgICB7CiAgICAgICAgZmFjdG9yaWFsKCk7CiAgICAgICAgU2Nhbm5lciBzYz1uZXcgU2Nhbm5lcihTeXN0ZW0uaW4pOwogICAgICAgIGludCBuPXNjLm5leHRJbnQoKTsKICAgICAgICBpbnQgcj1zYy5uZXh0SW50KCk7CiAgICAgICAgbG9uZyBhbnM9bmNyKG4scik7CiAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKGFucyk7CiAgICB9Cn0=