#include <iostream>
#include <vector>

using namespace std;

int main() {
    int n, m, a = 1;
    std::cin >> n >> m;
    std::vector<int> lastVec, curVec(m, 1);
    for (int i = 1; i < n; ++i) {
        lastVec = std::move(curVec);
        curVec.resize(m);
        curVec[0] = 1;
        for (int j = 1; j < m; ++j) {
            curVec[j] = (lastVec[j] + curVec[j - 1]) % 1000000007;
        }
    }
    std::cout << curVec[m - 1] << std::endl;
    return 0;
}