#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';
}
