#include <bits/stdc++.h>
using namespace std;
int dp[1001][501];
int mem(int sz, int rem) {
  if ((sz - 1) / 2 < rem) return 0;
  if (rem == 0) return 1;
  if (dp[sz][rem] != -1) return dp[sz][rem];
  long long ref = 0;
  for (int i = 1; i <= sz - 2; i++) {
    long long t = sz - 1 - i;
    t *= mem(i, rem - 1);
    if (t >= 1000000007LL) t %= 1000000007LL;
    ref += t;
  }
  return dp[sz][rem] = ref % 1000000007LL;
}
int n, m, k;
int main() {
  cin >> n >> m >> k;
  memset(dp, -1, sizeof dp);
  long long t1 = mem(n, k);
  long long t2 = mem(m, k);
  long long res = (t1 * t2) % 1000000007LL;
  cout << res << endl;
  return 0;
}
