func_code_string: #include <bits/stdc++.h>   using namespace std;   long long cumdp[2005];   long long cumpd[2005];   long long dp[2005][2005];   long long pd[2005][2005];   const long long mod = 1e9 + 7;   int main() {     long long n, m;     cin >> n >> m;     for (int width = 2; width <= m; width++) {       dp[1][width] = 1;       pd[1][width] = 1;     }     for (int len = 2; len <= n; len++) {       long long sum = 0;       for (int width = 2; width <= m; width++) {         sum += dp[len - 1][width];         sum %= mod;         dp[len][width] = dp[len][width - 1] + sum;         pd[len][width] = dp[len][width] - dp[len - 1][width];       }     }     long long ans = 0;     for (int base = 1; base <= m; base++) {       for (int len = 1; len <= n; len++) {         cumdp[len] = cumdp[len - 1] + dp[len][base];         cumdp[len] %= mod;         cumpd[len] = cumpd[len - 1] + pd[len][base];         cumpd[len] %= mod;       }       long long cur = 0;       for (int cen = 1; cen <= n; cen++) {         cur += (cumdp[cen] * cumpd[n - cen + 1]) % mod;         cur %= mod;       }       cur *= (m - base + 1);       cur %= mod;       ans += cur;       ans %= mod;     }     cout << ans <<   n ;   }   