#include <bits/stdc++.h>
using namespace std;
const long long mod = 1e9 + 7;
long long k, pa, pb, f[1005][1005];
long long read() {
  long long f = 0, w = 1;
  char ch = getchar();
  while (ch < '0' || ch > '9') {
    if (ch == '-') w = -1;
    ch = getchar();
  }
  while (ch >= '0' && ch <= '9') {
    f = f * 10 + ch - '0';
    ch = getchar();
  }
  return f * w;
}
long long qpow(long long x, long long y) {
  long long ans = 1;
  while (y) {
    if (y & 1) ans = ans * x % mod;
    x = x * x % mod;
    y >>= 1;
  }
  return ans;
}
signed main() {
  k = read(), pa = read(), pb = read();
  long long c = (pa * qpow(pb, mod - 2)) % mod,
            a = (pa * qpow(pb + pa, mod - 2)) % mod,
            b = (pb * qpow(pa + pb, mod - 2)) % mod;
  for (long long i = k; i >= 0; i--) {
    for (long long j = k; j >= 0; j--) {
      f[i][j] = (i + j >= k)
                    ? ((i + j + c) % mod)
                    : ((a * f[i + 1][j] % mod + b * f[i][i + j] % mod) % mod);
    }
  }
  printf("%lld\n", f[1][0]);
  return 0;
}
