#include <bits/stdc++.h>
using namespace std;
const int lim = 200005, mm = 1000000007;
long long a1, a2, fac[210001], faci[210001];
int i, j, k, n, m, w;
long long pw(long long b, long long p) {
  long long res = 1;
  for (; p; p >>= 1, b = b * b % mm)
    if (p & 1) res = res * b % mm;
  return res;
}
long long calc(long long a, long long b) {
  if (a < b) return 0;
  return fac[a] * faci[b] % mm * faci[a - b] % mm;
}
int main() {
  scanf("%d%d%d", &n, &m, &w);
  for (i = fac[0] = faci[0] = 1; i <= lim; i++)
    fac[i] = fac[i - 1] * (long long)i % mm, faci[i] = pw(fac[i], mm - 2) % mm;
  a2 = calc(n + m, n);
  a1 = 0;
  if (!m) {
    puts("1");
    return 0;
  }
  for (i = 1; i * (w + 1) <= m; i++)
    a1 = (a1 + calc(n + 1, i) * calc(m - i * (w + 1) + i - 1, i - 1) % mm) % mm;
  cout << a1 * pw(a2, mm - 2) % mm << endl;
  return 0;
}
