#include <bits/stdc++.h>
using namespace std;
const int N = 3e5 + 10;
const int mod = 1e9 + 7;
long long qpow(long long n, long long k) {
  long long res = 1;
  while (k) {
    if (k & 1) res = res * n % mod;
    n = n * n % mod;
    k >>= 1;
  }
  return res;
}
long long fac[N], inv[N];
long long C(int n, int k) { return fac[n] * inv[k] % mod * inv[n - k] % mod; }
long long S(int n, int k) {
  if (k < 0) return 0;
  return C(n + k - 1, k);
}
int main() {
  fac[0] = 1;
  for (int i = 1; i < N; i++) fac[i] = fac[i - 1] * i % mod;
  inv[N - 1] = qpow(fac[N - 1], mod - 2);
  for (int i = N - 2; i >= 0; i--) inv[i] = inv[i + 1] * (i + 1) % mod;
  long long ans = 0;
  int a, b, h;
  cin >> a >> b >> h;
  if (b == 0) {
    cout << 1 << endl;
    return 0;
  }
  if (h == 0) {
    cout << 1 << endl;
    return 0;
  }
  if (a == 0) {
    if (b > h)
      cout << 1 << endl;
    else
      cout << 0 << endl;
    return 0;
  }
  for (int i = 1; (h + 1) * i <= b; i++) {
    ans += S(i, b - (h + 1) * i) * S(i + 1, a - (i - 1)) % mod;
  }
  ans = ans % mod * qpow(C(a + b, a), mod - 2) % mod;
  cout << ans << endl;
}
