func_code_string: #include <bits/stdc++.h>   using namespace std;   const int N = 1e5;   long long int rev[N], fac[N], mod = 1e9 + 7;   long long int wop(long long int x, long long int y) {     if (y == 0) return 1;     long long int ret = wop(x, y / 2);     ret %= mod;     ret *= ret;     ret %= mod;     if (y & 1) ret *= x;     ret %= mod;     return ret;   }   long long int chos(long long int r, long long int n) {     return (fac[n] * ((rev[r] * rev[n - r]) % mod)) % mod;   }   int main() {     long long int n, m;     cin >> n >> m;     rev[0] = fac[0] = 1;     for (int i = 1; i < 2e3; i++) {       fac[i] = fac[i - 1] * i;       fac[i] %= mod;       rev[i] = wop(fac[i], mod - 2);     }     long long int ans = 0;     for (int i = 1; i <= n; i++) {       for (int j = i; j <= n; j++) {         long long int f1 = chos(i - 1, i + m - 2);         long long int f2 = chos(n - j, n + m - j - 1);         ans += (f1 * f2) % mod;         ans %= mod;       }     }     cout << ans;   }   