#include <bits/stdc++.h>
using namespace std;
const long long MOD = 1000000007;
long long dp[1001][1001];
bool b[1001][1001];
void binit(long long n, long long k) {
  if (k == 0 || 2 * k >= n || b[n][k]) return;
  b[n][k] = true;
  for (long long i = 2 * k - 1; i <= n - 2; i++) binit(i, k - 1);
}
void init() {
  for (int n = 0; n <= 1000; n++)
    for (int k = 0; k <= 1000; k++)
      if (b[n][k] || k == 0 || n == 0) {
        if (k == 0)
          dp[n][k] = 1;
        else if (2 * k >= n)
          dp[n][k] = 0;
        else {
          for (long long i = 2 * k - 1; i <= n - 2; i++) {
            dp[n][k] += ((n - 2 - i + 1) * dp[i][k - 1]) % MOD;
            dp[n][k] %= MOD;
          }
        }
      }
}
int main() {
  long long n, m, k;
  cin >> n >> m >> k;
  binit(n, k);
  binit(m, k);
  init();
  cout << (dp[n][k] * dp[m][k]) % MOD << '\n';
  return 0;
}
