#include<bits/stdc++.h>
#define int long long
using namespace std;
const int N = 110, MOD = 1e9+7;int n, m;
//dp数组
//表示经过i家店 j躲花 还剩下 k 酒
int f[N][N][N];signed main(){cin >> n >> m;//根据题意 初始化f[0][0][2] = 1;for(int i = 0; i <= n; i++){for(int j = 0; j <= m; j++){for(int k = 0; k <= m; k++){//店if(i && (k%2==0)){f[i][j][k] += f[i-1][j][k/2];f[i][j][k] %= MOD;}if(j){f[i][j][k] += f[i][j-1][k+1];f[i][j][k] %= MOD;}}}}cout << f[n][m-1][1] << endl;return 0;
}