#include <bits/stdc++.h>
using namespace std;
const int NMAX = 100000;
const int MOD = 1e9 + 7;
int fact[NMAX + 7];
int f, w, h;
int logpow(int a, int b) {
  int sol = 1;
  while (b) {
    if (b & 1) sol = 1LL * sol * a % MOD;
    a = 1LL * a * a % MOD;
    b >>= 1;
  }
  return sol;
}
int comb(int n, int k) {
  return 1LL * fact[n] * logpow(fact[k], MOD - 2) % MOD *
         logpow(fact[n - k], MOD - 2) % MOD;
}
long long solve(int h) {
  long long sol = 0;
  if (w == 0) return 1;
  for (int i = 1; i <= f + 1 && i <= w - i * h; i++) {
    int nr = comb(f + 1, i);
    sol = (sol + 1LL * comb(w - i * h - 1, i - 1) * nr) % MOD;
  }
  return sol;
}
int main() {
  cin >> f >> w >> h;
  fact[0] = 1;
  for (int i = 1; i <= NMAX + 5; i++) fact[i] = 1LL * fact[i - 1] * i % MOD;
  cout << 1LL * solve(h) * logpow(solve(0), MOD - 2) % MOD;
  return 0;
}
