#include <bits/stdc++.h>
const long long mod = 1000000007;
long long power(long long a, long long r) {
  if (r == 0) return 1;
  if (r == 1) return a;
  long long res = power(a, r / 2);
  res = res * res % mod;
  if (r & 1) res = (res * a) % mod;
  return res;
}
long long k, pa, pb;
long long inv, rat;
long long dp[1010][2010];
bool memo[1010][2010];
long long solve(long long a, long long n) {
  if (a == 1 && n == 0) return 1;
  if (!memo[a][n]) {
    memo[a][n] = true;
    if (n < k && a > 1) {
      dp[a][n] = dp[a][n] + ((pa * inv % mod) * solve(a - 1, n) % mod);
      dp[a][n] %= mod;
    }
    if (n >= a) {
      dp[a][n] = dp[a][n] + ((pb * inv % mod) * solve(a, n - a) % mod);
      dp[a][n] %= mod;
    }
  }
  return dp[a][n];
}
int main() {
  scanf("%I64d%I64d%I64d", &k, &pa, &pb);
  inv = power(pa + pb, mod - 2);
  rat = pa * power(pb, mod - 2) % mod;
  if (k == 1) {
    long long E = (1 + rat) % mod;
    printf("%I64d\n", E);
    return 0;
  }
  long long EA = 0, EB = 0;
  for (int a = 1; a < k; a++)
    for (int n = k; n < k + a; n++) {
      EA = EA + solve(a, n) * n;
      EA %= mod;
      EB = EB + solve(a, n);
      EB %= mod;
    }
  for (int n = 0; n < k; n++) {
    long long prob = solve(k - 1, n) * (pa * inv % mod) % mod;
    EA = EA + prob * (k + n + rat);
    EA %= mod;
    EB = EB + prob;
    EB %= mod;
  }
  long long E = EA * power(EB, mod - 2) % mod;
  printf("%I64d\n", E);
  return 0;
}
