#include<bits/stdc++.h>
#define SI(n) scanf("%d",&n)
#define SII(a,b) scanf("%d%d",&a,&b)
#define SIII(a,b,c) scanf("%d%d%d",&a,&b,&c)
#define SDD(a,b) scanf("%lf%lf",&a,&b)
#define SLL(n) scanf("%lld",&n)
#define SLLLL(n,c) scanf("%lld%lld",&n,&c)
#define SC(r) scanf("%c",&r)
#define SS(r) scanf("%s",r)
#define REPA(i,a,n) for(int i=a;i<n;i++)
#define REP(i,n) for(ll i=0;i<n;i++)
#define PI(n) printf("%d\n",n)
#define PD(n) printf("%.9lf\n",n)
#define PDD(n,c) printf("%lf %lf\n",n,c)
#define PLL(n) printf("%lld\n",n)
#define PC(n) printf("%c\n",n)
#define PS(n) printf("%s\n",n)
#define ll long long
#define M 10000007
using namespace std;
int arr[ 110 ] [ 110 ] ;
int ncr( int n,int r)
{
if ( arr[ n] [ r] ! = - 1 )
return arr[ n] [ r] ;
else if ( n== r)
return arr[ n] [ r] = 1 ;
else if ( n- r== 1 )
return arr[ n] [ r] = n;
else
return arr[ n] [ r] = ( ncr( n- 1 ,r- 1 ) + ncr( n- 1 ,r) ) % M;
}
int main( )
{
int n,r;
SII( n,r) ;
if ( r> n)
printf ( "-1\n " ) ;
else
{
REP( i,n+ 1 )
REP( j,n+ 1 )
arr[ i] [ j] = - 1 ;
PI( ncr( n- 1 ,r- 1 ) ) ;
}
return 0 ;
} #include <iostream>
using namespace std;
int main( ) {
// your code goes here
return 0 ;
}
I2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KI2RlZmluZSBTSShuKSBzY2FuZigiJWQiLCZuKQojZGVmaW5lIFNJSShhLGIpIHNjYW5mKCIlZCVkIiwmYSwmYikKI2RlZmluZSBTSUlJKGEsYixjKSBzY2FuZigiJWQlZCVkIiwmYSwmYiwmYykKI2RlZmluZSBTREQoYSxiKSBzY2FuZigiJWxmJWxmIiwmYSwmYikKI2RlZmluZSBTTEwobikgc2NhbmYoIiVsbGQiLCZuKQojZGVmaW5lIFNMTExMKG4sYykgc2NhbmYoIiVsbGQlbGxkIiwmbiwmYykKI2RlZmluZSBTQyhyKSBzY2FuZigiJWMiLCZyKQojZGVmaW5lIFNTKHIpIHNjYW5mKCIlcyIscikKI2RlZmluZSBSRVBBKGksYSxuKSBmb3IoaW50IGk9YTtpPG47aSsrKQojZGVmaW5lIFJFUChpLG4pIGZvcihsbCBpPTA7aTxuO2krKykKI2RlZmluZSBQSShuKSBwcmludGYoIiVkXG4iLG4pCiNkZWZpbmUgUEQobikgcHJpbnRmKCIlLjlsZlxuIixuKQojZGVmaW5lIFBERChuLGMpIHByaW50ZigiJWxmICVsZlxuIixuLGMpCiNkZWZpbmUgUExMKG4pIHByaW50ZigiJWxsZFxuIixuKQojZGVmaW5lIFBDKG4pIHByaW50ZigiJWNcbiIsbikKI2RlZmluZSBQUyhuKSBwcmludGYoIiVzXG4iLG4pCiNkZWZpbmUgbGwgbG9uZyBsb25nCiNkZWZpbmUgTSAxMDAwMDAwNwp1c2luZyBuYW1lc3BhY2Ugc3RkOwogCmludCBhcnJbMTEwXVsxMTBdOwogCmludCBuY3IoaW50IG4saW50IHIpCnsKaWYoYXJyW25dW3JdIT0tMSkKcmV0dXJuIGFycltuXVtyXTsKZWxzZSBpZihuPT1yKQpyZXR1cm4gYXJyW25dW3JdPTE7CmVsc2UgaWYobi1yPT0xKQpyZXR1cm4gYXJyW25dW3JdPW47CmVsc2UKcmV0dXJuIGFycltuXVtyXT0obmNyKG4tMSxyLTEpK25jcihuLTEscikpJU07Cn0KIAppbnQgbWFpbigpCnsKIAppbnQgbixyOwpTSUkobixyKTsKaWYocj5uKQpwcmludGYoIi0xXG4iKTsKZWxzZQp7ClJFUChpLG4rMSkKUkVQKGosbisxKQphcnJbaV1bal09LTE7ClBJKG5jcihuLTEsci0xKSk7Cn0KcmV0dXJuIDA7Cn0jaW5jbHVkZSA8aW9zdHJlYW0+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgppbnQgbWFpbigpIHsKCS8vIHlvdXIgY29kZSBnb2VzIGhlcmUKCXJldHVybiAwOwp9