func_code_string: #include <bits/stdc++.h>   using namespace std;   const long long inf = 1e18;   const int nax = 1e3 + 20;   const int mod = 1e9 + 7;   int fact[nax];   int binpow(int a, int e) {     int ans = 1;     while (e > 1) {       if (e & 1) {         ans = (1LL * ans * a) % mod;         --e;       }       a = (1LL * a * a) % mod;       e >>= 1;     }     ans = (1LL * ans * a) % mod;     return ans;   }   int C(int n, int k) {     if (k > n) return 0;     return (1LL * fact[n] *             (1LL * binpow(fact[n - k], mod - 2) * binpow(fact[k], mod - 2) %              mod)) %            mod;   }   int main() {     ios_base::sync_with_stdio(false);     cin.tie(NULL);     cout.tie(NULL);     cout << setprecision(20) << fixed;     fact[0] = 1;     for (int i = 1; i <= (int)nax - 1; ++i) {       fact[i] = (1LL * fact[i - 1] * i) % mod;     }     int n, m, k;     cin >> n >> m >> k;     cout << (1LL * C(n - 1, 2 * k) * C(m - 1, 2 * k)) % mod <<   n ;   }   