#include <bits/stdc++.h>
using namespace std;
const int mod = 1e+9 + 7;
const int maxn = 1000 + 10;
void gcd(int a, int b, int &x, int &y) {
  if (b)
    gcd(b, a % b, y, x), y -= a / b * x;
  else
    x = 1, y = 0;
}
int inv(int a) {
  a %= mod;
  int x, y;
  gcd(a, mod, x, y);
  return (x + mod) % mod;
}
long long k, pa, pb;
long long ipab, ipa, ipb;
long long f[maxn][maxn];
long long dp(long long i, long long j) {
  if (j >= k) return j;
  if (f[i][j]) return f[i][j];
  if (i == k) return f[i][j] = (j + i + pa * ipb % mod + mod) % mod;
  if (!i) return f[i][j] = dp(i + 1, j);
  return f[i][j] = (pa * ipab % mod * dp(i + 1, j) % mod +
                    pb * ipab % mod * dp(i, i + j) % mod) %
                   mod;
}
int main() {
  cin >> k >> pa >> pb;
  ipa = inv(pa);
  ipb = inv(pb);
  ipab = inv(pa + pb);
  cout << dp(0, 0);
  return 0;
}
