#include <bits/stdc++.h>
using namespace std;
void ASS(bool b) {
  if (!b) {
    ++*(int*)0;
  }
}
#pragma comment(linker, "/STACK:106777216")
const int P = 1000 * 1000 * 1000 + 7;
const int N = 1024;
int d[N][N];
int main() {
  int n, m, k;
  cin >> n >> m >> k;
  for (int i = 1; i <= max(n, m); i++) d[0][i] = 1;
  for (int z = 0; z < (int)(k); z++) {
    d[z + 1][1] = 0;
    int curSum = 0;
    for (int i = 2; i <= max(n, m); i++) {
      curSum = (curSum + d[z][i - 2]) % P;
      d[z + 1][i] = (d[z + 1][i - 1] + curSum) % P;
    }
  }
  cout << (d[k][n] * (long long)d[k][m]) % P << endl;
  return 0;
}
