#include <bits/stdc++.h>
using namespace std;
const int mod = 1e9 + 7;
long long power(long long base, long long p) {
  long long ret = 1;
  while (p) {
    if (p & 1) ret = ret * base % mod;
    base = base * base % mod;
    p >>= 1;
  }
  return ret;
}
long long inverse(long long base) { return power(base, mod - 2); }
int k, pa, pb;
long long d[1001][1001];
long long inv1, inv2, invb;
long long prefix(long long x) {
  long long ret =
      (x * power(inv1, x + 1) % mod - (x + 1) * power(inv1, x) % mod + 1) %
      mod * invb % mod * invb % mod;
  return ret;
}
long long dp(int a, int b) {
  if (a >= b) {
    long long tar = invb * invb % mod;
    return inv2 * (tar - prefix(a - 1)) % mod * inverse(power(inv1, a - 1)) %
           mod;
  }
  long long &ret = d[a][b];
  if (ret == -1) {
    return ret = (inv2 * (a + dp(a, b - a)) % mod + inv1 * dp(a + 1, b) % mod) %
                 mod;
  }
  return ret;
}
double dpp[1001][1001];
int main() {
  memset(d, -1, sizeof(d));
  scanf("%d %d %d", &k, &pa, &pb);
  long long tot = pa + pb;
  long long inv = inverse(tot);
  inv1 = pa * inv % mod;
  inv2 = pb * inv % mod;
  invb = tot * inverse(pb) % mod;
  long long ret = dp(1, k);
  ret %= mod;
  if (ret < 0) ret += mod;
  printf("%lld\n", ret);
}
