#include <bits/stdc++.h>
#define int long long
using namespace std;
const int MOD = 1e9 + 7;
int binpow(int a, int n) {
if (n == 0) return 1;
int x = binpow(a, n / 2);
if (n % 2 == 0) return (x * x) % MOD;
else return ((x * x) % MOD * a) % MOD;
}
signed main() {
ios_base::sync_with_stdio(0);
cin.tie(0);
int a, b;
cin >> a >> b;
int n = a + b - 1, k = b - 1;
int x = 1;
for (int i = k + 1; i <= n; ++i) x = (x * i) % MOD;
int y = 1;
for (int i = 1; i <= n - k; ++i) y = (y * i) % MOD;
cout << (x * binpow(y, MOD - 2)) % MOD;
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CiNkZWZpbmUgaW50IGxvbmcgbG9uZwp1c2luZyBuYW1lc3BhY2Ugc3RkOwpjb25zdCBpbnQgTU9EID0gMWU5ICsgNzsKCmludCBiaW5wb3coaW50IGEsIGludCBuKSB7CglpZiAobiA9PSAwKSByZXR1cm4gMTsKCWludCB4ID0gYmlucG93KGEsIG4gLyAyKTsKCWlmIChuICUgMiA9PSAwKSByZXR1cm4gKHggKiB4KSAlIE1PRDsKCWVsc2UgcmV0dXJuICgoeCAqIHgpICUgTU9EICogYSkgJSBNT0Q7Cn0KCnNpZ25lZCBtYWluKCkgewoJaW9zX2Jhc2U6OnN5bmNfd2l0aF9zdGRpbygwKTsKCWNpbi50aWUoMCk7CglpbnQgYSwgYjsKCWNpbiA+PiBhID4+IGI7CglpbnQgbiA9IGEgKyBiIC0gMSwgayA9IGIgLSAxOwoJaW50IHggPSAxOwoJZm9yIChpbnQgaSA9IGsgKyAxOyBpIDw9IG47ICsraSkgeCA9ICh4ICogaSkgJSBNT0Q7CglpbnQgeSA9IDE7Cglmb3IgKGludCBpID0gMTsgaSA8PSBuIC0gazsgKytpKSB5ID0gKHkgKiBpKSAlIE1PRDsKCWNvdXQgPDwgKHggKiBiaW5wb3coeSwgTU9EIC0gMikpICUgTU9EOwogICAgcmV0dXJuIDA7Cn0=