#include <bits/stdc++.h>
using namespace std;
const int N = 212345;
const int mod = 1000000007;
int fac[N], ifac[N], inv[N];
void prep() {
  fac[0] = ifac[0] = inv[1] = 1;
  for (int i = 1; i < N; ++i) fac[i] = 1LL * i * fac[i - 1] % mod;
  for (int i = 2; i < N; ++i)
    inv[i] = mod - 1LL * (mod / i) * inv[mod % i] % mod;
  for (int i = 1; i < N; ++i) ifac[i] = 1LL * inv[i] * ifac[i - 1] % mod;
}
int C(int n, int r) {
  if (r < 0 || n < r) return 0;
  return 1LL * fac[n] * ifac[n - r] % mod * ifac[r] % mod;
}
int num(int r, int b, int k) {
  if (b == 0) return 1;
  int ans = 0;
  for (int u = 1; u <= r + 1 && (k == 0 || u <= (b - 1) / k); ++u) {
    ans += 1LL * C(r + 1, u) * C(b - k * u - 1, u - 1) % mod;
    ans %= mod;
  }
  return ans;
}
int pwr(int b, int p) {
  int r = 1;
  while (p) {
    if (p & 1) r = 1LL * r * b % mod;
    b = 1LL * b * b % mod;
    p >>= 1;
  }
  return r;
}
int finv(int x) { return pwr(x, mod - 2); }
int main() {
  prep();
  int f, w, h;
  cin >> f >> w >> h;
  int sn = num(f, w, h);
  int sd = C(f + w, w);
  cout << 1LL * sn * finv(sd) % mod << "\n";
}
