#include <bits/stdc++.h>
const long long mod = 1000000007;
int DP[1001][1001];
long long DFS(int n, int k) {
  if (n <= k * 2) return 0;
  if (k == 0) return 1;
  if (DP[n][k] != -1) return DP[n][k];
  long long ans = 0;
  for (int i = n - 2; i >= 1; i--)
    if (i <= 2 * k - 2)
      break;
    else {
      ans += (n - 1 - i) * DFS(i, k - 1);
      if (ans > mod) ans %= mod;
    }
  return DP[n][k] = ans;
}
int main() {
  int n, m, k;
  while (~scanf("%d%d%d", &n, &m, &k)) {
    memset(DP, -1, sizeof(DP));
    printf("%I64d\n", (DFS(n, k) * DFS(m, k)) % mod);
  }
  scanf(" ");
}
