#include <cstdio>
int mod = 1000000007;
int main() {
int n, m;
scanf("%d %d", &n, &m);
int a[n + 1][m + 1]; // a[x][y]
for (int i = 0; i <= n; i++) {
for (int j = 0; j <= m; j++) {
a[i][j] = -1;
}
}
for (int i = 0; i <= n; i++) a[i][0] = 1;
for (int i = 0; i <= m; i++) a[0][i] = 1;
for (int i = 1; i <= n; i++) {
for (int j = 1; j <= m; j++) {
if (a[i - 1][j - 1] == -1 || a[i][j - 1] == -1 || a[j - 1][i] == -1) {
printf("Fucked off at a[%d][%d]\n", i, j);
printf("a[%d][%d] = %d | a[%d][%d] = %d | a[%d][%d] = %d\n", i - 1, j - 1, a[i - 1][j - 1], i, j - 1, a[i][j - 1], i - 1, j, a[i - 1][j]);
return 0;
}
a[i][j] = (a[i - 1][j - 1] % mod + a[i][j - 1] % mod + a[i - 1][j] % mod) % mod;
printf("a[%d][%d] = %d\n", i, j, a[i][j] % mod);
}
}
printf("%d\n", a[n][m] % mod);
}
I2luY2x1ZGUgPGNzdGRpbz4KCmludCBtb2QgPSAxMDAwMDAwMDA3OwoKaW50IG1haW4oKSB7CiAgICBpbnQgbiwgbTsKICAgIHNjYW5mKCIlZCAlZCIsICZuLCAmbSk7CiAgICBpbnQgYVtuICsgMV1bbSArIDFdOyAvLyBhW3hdW3ldCiAgICBmb3IgKGludCBpID0gMDsgaSA8PSBuOyBpKyspIHsKICAgICAgICBmb3IgKGludCBqID0gMDsgaiA8PSBtOyBqKyspIHsKICAgICAgICAgICAgYVtpXVtqXSA9IC0xOwogICAgICAgIH0KICAgIH0KICAgIGZvciAoaW50IGkgPSAwOyBpIDw9IG47IGkrKykgYVtpXVswXSA9IDE7CiAgICBmb3IgKGludCBpID0gMDsgaSA8PSBtOyBpKyspIGFbMF1baV0gPSAxOwogICAgZm9yIChpbnQgaSA9IDE7IGkgPD0gbjsgaSsrKSB7CiAgICAgICAgZm9yIChpbnQgaiA9IDE7IGogPD0gbTsgaisrKSB7CiAgICAgICAgICAgIGlmIChhW2kgLSAxXVtqIC0gMV0gPT0gLTEgfHwgYVtpXVtqIC0gMV0gPT0gLTEgfHwgYVtqIC0gMV1baV0gPT0gLTEpIHsKICAgICAgICAgICAgICAgIHByaW50ZigiRnVja2VkIG9mZiBhdCBhWyVkXVslZF1cbiIsIGksIGopOwogICAgICAgICAgICAgICAgcHJpbnRmKCJhWyVkXVslZF0gPSAlZCB8IGFbJWRdWyVkXSA9ICVkIHwgYVslZF1bJWRdID0gJWRcbiIsIGkgLSAxLCBqIC0gMSwgYVtpIC0gMV1baiAtIDFdLCBpLCBqIC0gMSwgYVtpXVtqIC0gMV0sIGkgLSAxLCBqLCBhW2kgLSAxXVtqXSk7CiAgICAgICAgICAgICAgICByZXR1cm4gMDsKICAgICAgICAgICAgfQogICAgICAgICAgICBhW2ldW2pdID0gKGFbaSAtIDFdW2ogLSAxXSAlIG1vZCArIGFbaV1baiAtIDFdICUgbW9kICsgYVtpIC0gMV1bal0gJSBtb2QpICUgbW9kOwogICAgICAgICAgICBwcmludGYoImFbJWRdWyVkXSA9ICVkXG4iLCBpLCBqLCBhW2ldW2pdICUgbW9kKTsKICAgICAgICB9CiAgICB9CiAgICBwcmludGYoIiVkXG4iLCBhW25dW21dICUgbW9kKTsKfQ==