#include <bits/stdc++.h>
long long dp[1010][1010];
using namespace std;
int main() {
  int n, m, k;
  cin >> n >> m >> k;
  memset(dp, 0, sizeof(dp));
  for (int i = 0; i <= (max(n, m)); i++) dp[0][i] = 1;
  for (int i = 1; i <= (max(n, m)); i++) dp[1][i] = 1;
  for (int i = 2; i <= k; i++) {
    for (int j = 1; j <= max(n, m); j++) {
      dp[i][j] = (dp[i - 1][j - 1] + dp[i][j - 1]) % 1000000007;
    }
  }
  long long ans1 = 0;
  long long ans2 = 0;
  for (int i = 1; i < n; i++) {
    for (int j = i + 1; j < n; j++) {
      ans1 = (ans1 + dp[k][i] * dp[k][n - j] % 1000000007) % 1000000007;
    }
  }
  for (int i = 1; i < m; i++) {
    for (int j = i + 1; j < m; j++) {
      ans2 = (ans2 + dp[k][i] * dp[k][m - j] % 1000000007) % 1000000007;
    }
  }
  cout << ans1 * ans2 % 1000000007 << endl;
}
