#include <bits/stdc++.h>
using namespace std;
vector<int> v1;
pair<int, int> p1;
int a[1234567];
string s;
long long pow1(long long x, long long y) {
  if (y == 0) return 1;
  long long temp = pow1(x, y / 2) % 1000000007;
  if (y % 2 == 0)
    return (temp * temp) % 1000000007;
  else
    return (((temp * temp) % 1000000007) * x) % 1000000007;
}
long long dp[3001][3001];
long long func(int n, int k) {
  if (k == 0) return 1;
  if (n <= 0) return 0;
  long long &f = dp[n][k];
  if (f != -1) return f;
  return f = (func(n - 2, k - 1) + 2ll * func(n - 1, k) - func(n - 2, k) +
              1000000007) %
             1000000007;
}
int main() {
  int t;
  int n, i, j, k, m, l;
  memset(dp, -1, sizeof(dp));
  scanf("%d%d", &n, &m);
  scanf("%d", &k);
  long long ans = (func(n - 2, k) * func(m - 2, k)) % 1000000007;
  cout << ans << "\n";
  return 0;
}
