#include <bits/stdc++.h>
using namespace std;
const int MAXN = 200000 + 10, mod = 1e9 + 7;
long long fa[MAXN];
long long fpow(long long a, long long b) {
  if (!b) return 1;
  if (b == 1) return a % mod;
  long long ans = fpow((a * a) % mod, b / 2);
  if (b & 1) ans = (ans * a) % mod;
  return ans;
}
long long cnk(int n, int k) {
  long long ans = (fa[n] * fpow(fa[k], mod - 2)) % mod;
  ans = (ans * fpow(fa[n - k], mod - 2)) % mod;
  return ans;
}
int main() {
  fa[0] = 1;
  for (int i = 1; i < MAXN; i++) fa[i] = (fa[i - 1] * i) % mod;
  int n0, n1, s;
  cin >> n0 >> n1 >> s;
  if (s == 1) n0--;
  if (n0 == -1) {
    cout << (n1 == 1 ? 1 : 0) << endl;
    return 0;
  }
  long long ans = 0;
  for (int i = 0; i <= n0 && i < n0 + n1 - 1; i += 2)
    ans = (ans + cnk(n0 + n1 - i - 1, n0 - i)) % mod;
  if (n0 && !n1 && n0 % 2 == 1) ans = (ans + 1) % mod;
  if (n1 == 1 && (n0 + n1) % 2 == 0) ans = (ans + 1) % mod;
  cout << ans << endl;
  return 0;
}
