#include <bits/stdc++.h>
using namespace std;
const int Mod = 1000 * 1000 * 1000 + 7, N = 1005;
int n, m, k, dp[N][N];
inline int md(int x) {
  if (x < 0)
    return x + Mod;
  else if (x >= Mod)
    return x - Mod;
  return x;
}
int main() {
  ios_base::sync_with_stdio(false), cin.tie(NULL), cout.tie(NULL);
  cin >> n >> m >> k;
  if (min(n, m) <= k * 2) return cout << "0\n", 0;
  n -= k * 2, m -= k * 2;
  for (int i = 1; i <= n; i++)
    for (int j = 1; j <= m; j++) dp[i][j] = 1;
  for (int z = 0; z < k * 2; z++)
    for (int i = 1; i <= n; i++)
      for (int j = 1; j <= m; j++)
        dp[i][j] += md(dp[i][j - 1] + dp[i - 1][j] - dp[i - 1][j - 1]),
            dp[i][j] = md(dp[i][j]);
  cout << dp[n][m] << '\n';
}
