#include <bits/stdc++.h>
using namespace std;
long long c[1000 + 5][1000 + 5];
void C() {
  memset(c, 0, sizeof(c));
  c[0][0] = 1;
  for (int i = 1; i <= 1000; i++) {
    c[i][0] = 1;
    for (int j = 1; j <= i; j++) {
      c[i][j] = (c[i - 1][j - 1] + c[i - 1][j]) % 1000000007ll;
    }
  }
}
inline long long getc(int x, int y) {
  if (x < 0) return 0;
  if (y > x) return 0;
  return c[x][y];
}
int main() {
  C();
  int n, m, k;
  while (~scanf("%d%d%d", &n, &m, &k)) {
    cout << getc(n - 1, 2 * k) * getc(m - 1, 2 * k) % 1000000007ll << endl;
  }
  return 0;
}
