#include <bits/stdc++.h>
using namespace std;
const int N = 200200;
const int mod = 1e9 + 7;
long long k, a, b;
long long d[1001][1001];
long long bin(long long x, long long k) {
  long long res = 1;
  while (k) {
    if (k & 1) res = res * x % mod;
    x = x * x % mod;
    k >>= 1;
  }
  return res;
}
int main() {
  cin >> k >> a >> b;
  long long ans = 0;
  long long inv_down = bin(a + b, mod - 2);
  d[1][0] = 1;
  for (int i = 1; i < k; ++i) {
    for (int j = 0; j < k; ++j) {
      int up = a, down = a + b;
      (d[i + 1][j] += up * inv_down % mod * d[i][j] % mod) %= mod;
      up = b, down = (a + b);
      if (j + i < k)
        (d[i][j + i] += up * inv_down % mod * d[i][j] % mod) %= mod;
      else
        (ans += up * inv_down % mod * (i + j) % mod * d[i][j] % mod) %= mod;
    }
  }
  for (int j = 0; j < k; j++) {
    long long cur = d[k][j];
    cur = cur * b % mod;
    cur = cur * bin(a + b, mod - 2) % mod;
    long long K = k + j;
    long long A = a * bin(a + b, mod - 2) % mod;
    long long up = ((A + K - A * K % mod) % mod + mod) % mod;
    long long down = ((-1 + A) * 1ll * (A - 1)) % mod;
    down = (down + mod) % mod;
    up = up * bin(down, mod - 2) % mod;
    cur = cur * up % mod;
    ans = (ans + cur) % mod;
  }
  cout << (ans + mod) % mod;
  return 0;
}
