        #include <bits/stdc++.h>
        #define endl '\n'
        #define modulo 10000007
        #define int long long
        using namespace std;
        ///Solution created by:Ahmadsm2005
        int maxer;
        int DP[101][101];
        int Recursion(int n,int m){
        if(m<0){
        return 0;
        }
        if(n==maxer&&!m)
        return 1;
        else if(n==maxer){
        return 0;
        }
        if(DP[n][m]+1)
        return DP[n][m]%modulo;
        DP[n][m]=0;
        for(int i=1;i<=m;i++){
        DP[n][m]+=(Recursion(n+1,m-i))%modulo;
        }
        return DP[n][m];
        }
        int32_t main()
        {
            iostream::sync_with_stdio(0);
            cin.tie(0);
            cout.tie(0);
            int m;
            for(int i=0;i<101;i++)
            for(int l=0;l<101;l++)
            DP[i][l]=-1;
            cin>>m>>maxer;
            cout<<(Recursion(0,m)?Recursion(0,m):-1);
            return 0;
        }
