#include <bits/stdc++.h>
int n, m, k;
long long d[1001][1001];
long long rec(int x, int cnt) {
  if (x - cnt * 2 < 0) return 0;
  if (cnt == 0) return 1;
  if (d[x][cnt] > -1) return d[x][cnt];
  long long ans = 0;
  for (int i = 0; i < (int)(x - 2); i++) {
    ans += ((x - 2 - i) * rec(i + 1, cnt - 1)) % ((int)(1e9 + 7));
  }
  return d[x][cnt] = ans % ((int)(1e9 + 7));
}
int main() {
  scanf("%d%d%d", &n, &m, &k);
  for (int i = 0; i < (int)(1001); i++)
    for (int j = 0; j < (int)(1001); j++) d[i][j] = -1;
  printf("%lld\n", rec(m, k) * rec(n, k) % ((int)(1e9 + 7)));
}
