#include <bits/stdc++.h>
using namespace std;
const double eps = 1e-5;
const double Pi = 3.1415926535897932;
const int dir[4][2] = {-1, 0, 0, -1, 1, 0, 0, 1};
const int maxn = 1000 + 5;
const int MOD = 1e9 + 7;
long long qpow(long long a, long long p) {
  long long ans = 1;
  while (p) {
    if (p & 1) ans = ans * a % MOD;
    a = a * a % MOD;
    p >>= 1;
  }
  return ans;
}
long long n;
long long pa, pb;
long long f[maxn][maxn];
int main() {
  cin >> n >> pa >> pb;
  f[n][0] = (pa)*qpow(pb, MOD - 2) % MOD;
  for (int i = n; i >= 0; i--) {
    for (int j = n; j >= 0; j--) {
      if (i + j >= n)
        f[i][j] = (i + j + (pa)*qpow(pb, MOD - 2) % MOD) % MOD;
      else {
        f[i][j] = (f[i][j] +
                   (f[i + 1][j]) * pa % MOD * qpow(pa + pb, MOD - 2) % MOD) %
                  MOD;
        f[i][j] = (f[i][j] +
                   (f[i][j + i]) * pb % MOD * qpow(pa + pb, MOD - 2) % MOD) %
                  MOD;
      }
    }
  }
  printf("%lld\n", f[1][0]);
  return 0;
}
