#include <bits/stdc++.h>
using namespace std;
long long mod = 1e9 + 7;
long long f, w, h;
long long fac[200010], ifac[200010];
long long ksm(long long x, long long p) {
  long long ret = 1;
  while (p) {
    if (p & 1) {
      ret *= x % mod;
      ret %= mod;
    }
    p /= 2;
    x *= x % mod;
    x %= mod;
  }
  return ret;
}
void prep() {
  fac[0] = ifac[0] = 1;
  for (int i = 1; i <= 200000; i++) {
    fac[i] = fac[i - 1] * i % mod;
    ifac[i] = ksm(fac[i], mod - 2) % mod;
  }
}
long long C(long long n, long long r) {
  if (r < 0 || n < r) return 0;
  return fac[n] * ifac[n - r] % mod * ifac[r] % mod;
}
long long num(long long r, long long b, long long k) {
  if (b == 0) return 1;
  long long ans = 0;
  for (int u = 1; u <= r + 1 && (k == 0 || u <= (b - 1) / k); ++u) {
    ans += C(r + 1, u) * C(b - k * u - 1, u - 1) % mod;
    ans %= mod;
  }
  return ans;
}
int main() {
  prep();
  scanf("%I64d%I64d%I64d", &f, &w, &h);
  long long sn = num(f, w, h);
  long long sd = C(f + w, w);
  printf("%I64d", sn * ksm(sd, mod - 2) % mod);
  return 0;
}
