#include <bits/stdc++.h>
#define int long long
using namespace std;
const int MOD = 1e9 + 7;
map <pair <int, int>, int> memo;
int c(int n, int r) {
if (r < 0 || r > n) return 0;
if (r == 0 || r == n) return 1;
if (memo.find({n, r}) != memo.end()) return memo[{n, r}];
return memo[{n, r}] = (c(n - 1, r - 1) + c(n - 1, r)) % MOD;
}
signed main() {
ios_base::sync_with_stdio(0);
cin.tie(0);
int m, n;
cin >> m >> n;
cout << c(m + n - 1, m);
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CiNkZWZpbmUgaW50IGxvbmcgbG9uZwp1c2luZyBuYW1lc3BhY2Ugc3RkOwpjb25zdCBpbnQgTU9EID0gMWU5ICsgNzsKbWFwIDxwYWlyIDxpbnQsIGludD4sIGludD4gbWVtbzsKCmludCBjKGludCBuLCBpbnQgcikgewogICAgaWYgKHIgPCAwIHx8IHIgPiBuKSByZXR1cm4gMDsKICAgIGlmIChyID09IDAgfHwgciA9PSBuKSByZXR1cm4gMTsKICAgIGlmIChtZW1vLmZpbmQoe24sIHJ9KSAhPSBtZW1vLmVuZCgpKSByZXR1cm4gbWVtb1t7biwgcn1dOwogICAgcmV0dXJuIG1lbW9be24sIHJ9XSA9IChjKG4gLSAxLCByIC0gMSkgKyBjKG4gLSAxLCByKSkgJSBNT0Q7Cn0KCnNpZ25lZCBtYWluKCkgewoJaW9zX2Jhc2U6OnN5bmNfd2l0aF9zdGRpbygwKTsKCWNpbi50aWUoMCk7CglpbnQgbSwgbjsKCWNpbiA+PiBtID4+IG47Cgljb3V0IDw8IGMobSArIG4gLSAxLCBtKTsKICAgIHJldHVybiAwOwp9