#include <bits/stdc++.h>
using namespace std;
int dps[1010][1010];
int n, m, k;
long long solve(int sz, int rem) {
  if ((sz - 1) / 2 < rem) return 0;
  if (rem == 0) return 1;
  if (dps[sz][rem] != -1) return dps[sz][rem];
  long long ref = 0;
  for (int i = 1; i < sz - 1; i++) {
    long long t = sz - i - 1;
    t *= solve(i, rem - 1);
    ref += t % int(1e9 + 7);
  }
  return dps[sz][rem] = (ref % int(1e9 + 7));
}
int main() {
  memset(dps, -1, sizeof dps);
  cin >> n >> m >> k;
  long long nn = solve(n, k);
  long long mm = solve(m, k);
  cout << (mm * nn) % int(1e9 + 7) << endl;
  return 0;
}
