#include<bits/stdc++.h>
using namespace std;
#define endl "\n"
const int MOD = 1e9 + 7;
const int N = 1010;
int num[N][N];

int f(int i, int j) {
    if (( j == 1) || ( i == 1)) {
        return 1;
    }
    // 记忆化数组
    if (num[i][j] != -1) {
        return num[i][j];
    }
    // 递归计算并存储结果
    num[i][j] = (f(i - 1, j) + f(i, j - 1)) % MOD;
    return num[i][j];
}

signed main() {
    ios::sync_with_stdio(false);
    cin.tie(0), cout.tie(0);
    int i, j;
    cin >> i >> j;
     memset(num, -1, sizeof(num));
    cout << f(i, j) << endl;
    return 0;
}