#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;
}
I2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KI2RlZmluZSBTSShuKSBzY2FuZigiJWQiLCZuKQojZGVmaW5lIFNJSShhLGIpIHNjYW5mKCIlZCVkIiwmYSwmYikKI2RlZmluZSBTSUlJKGEsYixjKSBzY2FuZigiJWQlZCVkIiwmYSwmYiwmYykKI2RlZmluZSBTREQoYSxiKSBzY2FuZigiJWxmJWxmIiwmYSwmYikKI2RlZmluZSBTTEwobikgc2NhbmYoIiVsbGQiLCZuKQojZGVmaW5lIFNMTExMKG4sYykgc2NhbmYoIiVsbGQlbGxkIiwmbiwmYykKI2RlZmluZSBTQyhyKSBzY2FuZigiJWMiLCZyKQojZGVmaW5lIFNTKHIpIHNjYW5mKCIlcyIscikKI2RlZmluZSBSRVBBKGksYSxuKSBmb3IoaW50IGk9YTtpPG47aSsrKQojZGVmaW5lIFJFUChpLG4pIGZvcihsbCBpPTA7aTxuO2krKykKI2RlZmluZSBQSShuKSBwcmludGYoIiVkXG4iLG4pCiNkZWZpbmUgUEQobikgcHJpbnRmKCIlLjlsZlxuIixuKQojZGVmaW5lIFBERChuLGMpIHByaW50ZigiJWxmICVsZlxuIixuLGMpCiNkZWZpbmUgUExMKG4pIHByaW50ZigiJWxsZFxuIixuKQojZGVmaW5lIFBDKG4pIHByaW50ZigiJWNcbiIsbikKI2RlZmluZSBQUyhuKSBwcmludGYoIiVzXG4iLG4pCiNkZWZpbmUgbGwgbG9uZyBsb25nCiNkZWZpbmUgTSAxMDAwMDAwNwp1c2luZyBuYW1lc3BhY2Ugc3RkOwogCmludCBhcnJbMTEwXVsxMTBdOwogCmludCBuY3IoaW50IG4saW50IHIpCnsKaWYoYXJyW25dW3JdIT0tMSkKcmV0dXJuIGFycltuXVtyXTsKZWxzZSBpZihuPT1yKQpyZXR1cm4gYXJyW25dW3JdPTE7CmVsc2UgaWYobi1yPT0xKQpyZXR1cm4gYXJyW25dW3JdPW47CmVsc2UKcmV0dXJuIGFycltuXVtyXT0obmNyKG4tMSxyLTEpK25jcihuLTEscikpJU07Cn0KIAppbnQgbWFpbigpCnsKIAppbnQgbixyOwpTSUkobixyKTsKaWYocj5uKQpwcmludGYoIi0xXG4iKTsKZWxzZQp7ClJFUChpLG4rMSkKUkVQKGosbisxKQphcnJbaV1bal09LTE7ClBJKG5jcihuLTEsci0xKSk7Cn0KcmV0dXJuIDA7Cn0=