#include <bits/stdc++.h>
using namespace std;
int n, m, s;
long long res;
long long fact[200001];
long long p = 1e9 + 7;
long long cal(long long, long long);
int main() {
  fact[0] = 1;
  for (int i = 1; i <= 200000; i++) {
    fact[i] = (fact[i - 1] * i) % p;
  }
  cin >> n >> m >> s;
  if (m == 0) {
    if (n % 2 == 0 && s == 1) {
      cout << 1 << endl;
    } else if (n % 2 == 0 && s == 0) {
      cout << 0 << endl;
    } else if (n % 2 == 1 && s == 0) {
      cout << 1 << endl;
    } else if (n % 2 == 1 && s == 1) {
      cout << 0 << endl;
    }
    return 0;
  }
  res = 0;
  for (int i = 1; i <= n + 1; i++) {
    if ((i != m + n && (i - 1) % 2 == s) || (i == m + n && (i - 1) % 2 != s)) {
      long long num = fact[m + n - i];
      long long de = (fact[m - 1] * fact[n + 1 - i]) % p;
      long long po = cal(de, p - 2);
      res = (res + (num * po)) % p;
    }
  }
  cout << res << endl;
  return 0;
}
long long cal(long long x, long long n) {
  if (n == 0) return 1;
  if (n == 1) return x % p;
  if (n % 2 == 0) return cal((x * x) % p, n / 2) % p;
  if (n % 2 == 1) return (x * cal((x * x) % p, (n - 1) / 2)) % p;
}
