#include <bits/stdc++.h>
using namespace std;
using ll = long long;
using ld = long double;
using pii = pair<int, int>;
int const N = 3000 + 20, mod = 1e9 + 7;
int n, pa, pb, ans, dp[N][N], dp2[N][N], res[N][N], dd;
inline int pw(int a, int b) {
  int res = 1;
  while (b) {
    if (b & 1) res = 1ll * res * a % mod;
    a = 1ll * a * a % mod;
    b >>= 1;
  }
  return res;
}
inline int inv(int x) { return pw(x, mod - 2); }
inline void add(int &a, int b) {
  a += b;
  if (a >= mod) a -= mod;
  if (a < 0) a += mod;
}
int32_t main() {
  ios::sync_with_stdio(false), cin.tie(0), cout.tie(0);
  cin >> n >> pa >> pb;
  dd = 1ll * pa * inv(pb) % mod;
  ans = (n + dd) % mod;
  int PA = 1ll * pa * inv(pa + pb) % mod;
  int PB = 1ll * pb * inv(pa + pb) % mod;
  dp[0][1] = 1;
  for (int A = 1; A < n; A++) {
    for (int AB = 0; AB < n; AB++) {
      if (!AB && A == 1) continue;
      if (AB >= A) add(dp[AB][A], 1ll * dp[AB - A][A] * PB % mod);
      if (A) add(dp[AB][A], 1ll * dp[AB][A - 1] * PA % mod);
      if (AB >= A) add(res[AB][A], 1ll * dp[AB - A][A] * PB % mod);
      if (AB + A > n) {
        ans = (ans + 1ll * (AB + A - n) * res[AB][A] % mod) % mod;
      }
    }
  }
  cout << ans << '\n';
}
