#include <bits/stdc++.h>
#pragma comment(linker, "/STACK:64000000")
using namespace std;
const int N = 1e3 + 3;
const int inf32 = 1e32;
const long long inf64 = 1e18;
const long long mod = 1e9 + 7;
const double eps = 1e-7;
long long dp[N][N], sum[N][N], pws[N];
long long binpow(long long a, long long pw = mod - 2) {
  if (!pw) return 1;
  long long t = binpow(a, pw / 2);
  t = (t * t) % mod;
  if (pw & 1) t = (t * a) % mod;
  return t;
}
void solve() {
  long long k, a, b;
  cin >> k >> a >> b;
  long long ad = (a * binpow(a + b)) % mod, bd = (b * binpow(a + b)) % mod,
            rez = 0, usp = (a * binpow(b)) % mod;
  pws[0] = 1;
  for (int i = 1; i <= k; ++i) pws[i] = (pws[i - 1] * ad) % mod;
  rez = (pws[k - 1] * usp) % mod;
  sum[1][1] = 1;
  for (int i = 1; i < k; ++i) {
    for (int j = 1; j <= i; ++j) {
      long long dx;
      dp[i][j] = (dp[i][j] + sum[i][j]) * bd % mod;
      if (k > i + j) {
        dx = (((dp[i][j] * pws[k - i - j]) % mod) * usp) % mod;
        dp[i + j][j] = dp[i + j][j] + dp[i][j];
      } else
        dx = (dp[i][j] * (i + j - k + usp)) % mod;
      if (k > i + j + 1)
        sum[i + j + 1][j + 1] = (sum[i + j + 1][j + 1] + dp[i][j] * ad) % mod;
      sum[i + 1][j + 1] = (sum[i + 1][j + 1] + ad * (sum[i][j])) % mod;
      rez = (rez + dx) % mod;
    }
  }
  cout << k + rez;
}
int main() {
  solve();
  return 0;
}
