func_code_string: #include <bits/stdc++.h>   #pragma GCC optimize( Ofast )   #pragma comment(linker,  /stack:200000000 )   using namespace std;   const int mnx = 3e5 + 9;   const int mod = 1e9 + 7;   const long long inf = 1e15 + 4;   long long binpow(long long a, int n) {     long long res = 1;     while (n) {       if (n & 1) res = (res * a) % mod;       a = (a * a) % mod;       n >>= 1;     }     return res % mod;   }   long long fact[mnx], rev[mnx];   void pre() {     fact[0] = rev[0] = 1;     for (int i = 1; i <= 1e5; i++) {       fact[i] = fact[i - 1] * i % mod;       rev[i] = binpow(fact[i], mod - 2) % mod;     }   }   long long cnk(int n, int k) {     if (n < k) return 0;     return (fact[n] * rev[k] % mod) * rev[n - k] % mod;   }   long long n, m, k;   void solve() {     cin >> n >> m >> k;     pre();     cout << cnk(m - 1, k * 2) * cnk(n - 1, k * 2) % mod <<   n ;   }   int main() {     int tt = 1;     while (tt--) {       solve();     }     return 0;   }   