#include <bits/stdc++.h>
using namespace std;
const int dx[8] = {-1, -1, -1, 0, 0, 1, 1, 1};
const int dy[8] = {-1, 0, 1, -1, 1, 0, 1, -1};
const int mod = 1e9 + 7;
const int maxn = 1e3;
const int maxa = 1e9;
int add(int a, int b) { return a + b >= mod ? a + b - mod : a + b; }
int mul(int a, int b) { return 1LL * a * b % mod; }
int pwr(int a, int k) {
  int res = 1;
  while (k) {
    if (k % 2) res = mul(res, a);
    a = mul(a, a);
    k /= 2;
  }
  return res;
}
int inv(int a) { return pwr(a, mod - 2); }
int PA, PB, pa, pb, k, dp[maxn][maxn];
int solve(int a, int b) {
  if (b >= k) return b;
  if (a == k) return add(b, add(k, mul(PA, inv(PB))));
  if (dp[a][b] != -1) return dp[a][b];
  return dp[a][b] = add(mul(PA, solve(a + 1, b)), mul(PB, solve(a, a + b)));
}
int main() {
  ios::sync_with_stdio(false);
  cin.tie(0);
  cin >> k >> pa >> pb;
  memset(dp, -1, sizeof(dp));
  PA = mul(pa, inv(add(pa, pb)));
  PB = mul(pb, inv(add(pa, pb)));
  cout << solve(1, 0);
}
