#include <bits/stdc++.h>
using namespace std;
const long double EPS = 1e-10;
const long long int MOD = 1000000007ll;
const long long int mod1 = 1000000009ll;
const long long int mod2 = 1100000009ll;
int INF = (int)1e9;
long long int INFINF = (long long int)1e18;
int debug = 0;
long long int bit_count(long long int _x) {
  long long int _ret = 0;
  while (_x) {
    if (_x % 2 == 1) _ret++;
    _x /= 2;
  }
  return _ret;
}
long long int power(long long int _a, long long int _b) {
  long long int _r = 1;
  while (_b) {
    if (_b % 2 == 1) _r = (_r * _a);
    _b /= 2;
    _a = (_a * _a);
  }
  return _r;
}
long long int add(long long int a, long long int b, long long int m = MOD) {
  long long int x = (a % m + b % m) % m;
  return x;
}
long long int sub(long long int a, long long int b, long long int m = MOD) {
  long long int x = a - b;
  while (x < 0) x += m;
  return x;
}
long long int mul(long long int a, long long int b, long long int m = MOD) {
  long long int x = a * b;
  x %= m;
  return x;
}
long long int powermod(long long int _a, long long int _b,
                       long long int _m = MOD) {
  long long int _r = 1;
  while (_b) {
    if (_b % 2 == 1) _r = (_r * _a) % _m;
    _b /= 2;
    _a = (_a * _a) % _m;
  }
  return _r;
}
long long int invmod(long long int a, long long int m = MOD) {
  return powermod(a, m - 2, m);
}
long long int gcd(long long int a, long long int b) {
  if (b == 0) return a;
  return gcd(b, a % b);
}
long long int lcm(long long int a, long long int b) {
  return (a * b) / gcd(a, b);
}
const int N = (1e5) + 5;
const int LN = 20;
const int B = 19;
int dx[] = {-1, 1, 0, 0};
int dy[] = {0, 0, -1, 1};
int k;
long long int pa, push_back;
long long int dp[1001][1001];
long long int solve(int a, int b) {
  if (b >= k) return b;
  if (a == k) {
    long long int tmp = ((1 - push_back + MOD) % MOD * invmod(push_back)) % MOD;
    return b * 1LL + tmp + a * 1LL;
  }
  if (dp[a][b] != -1) return dp[a][b];
  dp[a][b] =
      ((pa * solve(a + 1, b)) % MOD + (push_back * solve(a, a + b)) % MOD) %
      MOD;
  return dp[a][b];
}
int main() {
  scanf("%d", &k);
  scanf("%lld %lld", &pa, &push_back);
  long long int inv = invmod(pa + push_back);
  pa = (pa * inv) % MOD;
  push_back = (push_back * inv) % MOD;
  for (int i = 0; i < 1001; i++) {
    for (int j = 0; j < 1001; j++) dp[i][j] = -1;
  }
  printf("%lld", solve(1, 0));
  return 0;
}
