#include <bits/stdc++.h>
long long Mod = 1e9 + 7;
long long a, b, h, i, p, q;
long long F[202020], I[202020];
long long Comb(long long n, long long r) {
  n--;
  r--;
  if (n < 0 || r < 0 || n < r) return 0;
  return F[n] * I[r] % Mod * I[n - r] % Mod;
}
long long Pow(long long a, long long b) {
  if (b == 1) return a;
  long long ret = Pow(a, b / 2);
  return ret * ret % Mod * (b % 2 ? a : 1) % Mod;
}
int main() {
  scanf("%lld%lld%lld", &a, &b, &h);
  if (a == 0) {
    printf("%d\n", b > h ? 1 : 0);
    return 0;
  }
  if (b == 0) {
    printf("1\n");
    return 0;
  }
  F[0] = I[0] = 1;
  for (i = 1; i <= a + b; i++) {
    F[i] = F[i - 1] * i % Mod;
    I[i] = i == 1 ? 1 : (Mod - Mod / i * I[Mod % i] % Mod) % Mod;
  }
  for (i = 1; i <= a + b; i++) I[i] = I[i] * I[i - 1] % Mod;
  for (i = 1; i <= a + b; i++) {
    p += Comb(a, (i + 1) / 2) * Comb(b, i / 2);
    p %= Mod;
    q += Comb(a, (i + 1) / 2) * Comb(b - i / 2 * h, i / 2);
    q %= Mod;
    p += Comb(b, (i + 1) / 2) * Comb(a, i / 2);
    p %= Mod;
    q += Comb(b - (i + 1) / 2 * h, (i + 1) / 2) * Comb(a, i / 2);
    q %= Mod;
  }
  p = Pow(p, Mod - 2);
  printf("%lld\n", p * q % Mod);
  return 0;
}
