#include <bits/stdc++.h>
using namespace std;
const long long int MOD = 1e9 + 7;
const double PI = 3.14159265358979323846264338;
vector<long long int> fac(1002, 1), invfac(1002, 1);
long long int power(long long int x, long long int y) {
  long long int ans = 1;
  x = x % MOD;
  while (y > 0) {
    if (y & 1) {
      ans *= x;
      ans %= MOD;
    }
    y = y >> 1;
    x = (x * x) % MOD;
  }
  return ans;
}
long long int inverseMod(long long int a) { return power(a, MOD - 2); }
long long int nCr(long long int n, long long int r) {
  if (r > n) {
    return 0;
  }
  long long int ans = fac[n];
  long long int val = (invfac[n - r] * invfac[r]) % MOD;
  ans *= val;
  ans %= MOD;
  return ans;
}
void solve() {
  for (long long int i = 1; i <= 1000; i++) {
    fac[i] = (fac[i - 1] * i) % MOD;
    invfac[i] = inverseMod(fac[i]);
  }
  long long int n, a, m, k;
  cin >> n >> m >> k;
  long long int ans = (nCr(n - 1, 2 * k) * nCr(m - 1, 2 * k)) % MOD;
  cout << ans << endl;
}
int main(void) {
  ios::sync_with_stdio(0);
  cin.tie(0);
  cout.tie(0);
  solve();
  return 0;
}
