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;
    }

    public static void main(String[] args)throws java.lang.Exception
    {
        factorial();
        Scanner sc=new Scanner(System.in);
        int n=sc.nextInt();
        int r=sc.nextInt();
        long ans=ncr(n,r);
        System.out.println(ans);
    }
}