func_code_string: #include <bits/stdc++.h>   using namespace std;   template <typename T>   T inline SQR(const T &a) {     return a * a;   }   long long MOD = 1000000007LL;   long long mypow(long long a, long long p) {     if (p == 0) return 1LL;     long long ans = mypow(a, p / 2);     ans *= ans;     ans %= MOD;     if (p & 1) return (a * ans) % MOD;     return ans;   }   int n, m, k;   int dp[1005][1005];   int solve(int pLeft, int sd) {     if (pLeft == 0) return 1;     if (sd <= 0) return 0;     int &val = dp[pLeft][sd];     if (val != -1) return val;     long long aux = 0;     for (int i = 1; i < sd - 1; ++i) {       aux += 1ll * (sd - 1 - i) * solve(pLeft - 1, i);     }     return val = aux % MOD;   }   int main() {     ios::sync_with_stdio(false);     cin >> n >> m >> k;     int MAXS = max(n, m) + 1;     for (int i = 0; i < k + 1; ++i)       for (int j = 0; j < MAXS; ++j) dp[i][j] = -1;     cout << (1ll * solve(k, n) * solve(k, m)) % MOD << endl;     return 0;   }   