#include <bits/stdc++.h>
using namespace std;
const int mod = 1e9 + 7;
const int maxn = 2e3 + 10;
int n, m;
long long fact[maxn], frev[maxn];
long long power(long long b, long long p) {
  if (p == 0) return 1;
  if (p & 1) return power(b * b % mod, p / 2) * b % mod;
  return power(b * b % mod, p / 2);
}
long long comb(long long r, long long n) {
  return fact[n] * frev[r] % mod * frev[n - r] % mod;
}
int main() {
  fact[0] = frev[0] = 1;
  for (long long i = 1; i < maxn; i++) {
    fact[i] = fact[i - 1] * i % mod;
    frev[i] = power(fact[i], mod - 2);
  }
  cin >> n >> m;
  long long ans = 0;
  for (int i = 1; i <= n; i++) {
    for (int j = i; j <= n; j++) {
      ans =
          (ans + (comb(m - 1, i + m - 2) * comb(m - 1, n - j + m - 1) % mod)) %
          mod;
    }
  }
  cout << ans << endl;
  return 0;
}
