#include <bits/stdc++.h>
using namespace std;
const int maxn = 1000 + 5;
const int mod = 1e9 + 7;
long long dp[maxn][maxn];
int k, pa, pb;
int fb(int a, int n) {
  if (n == 0) return 1;
  int u = fb(a, n / 2);
  int res = 1LL * u * u % mod;
  if (n & 1)
    return 1LL * res * a % mod;
  else
    return res;
}
int inv(int x) { return fb(x, mod - 2); }
int invbase, invb;
int getdp(int a, int ab) {
  if (a >= k) return (a + ab + 1LL * pa * invb) % mod;
  if (ab >= k) return ab;
  if (dp[a][ab] != -1) return dp[a][ab];
  return dp[a][ab] = 1LL *
                     (1LL * getdp(a + 1, ab) * pa % mod +
                      1LL * getdp(a, ab + a) * pb % mod) *
                     invbase % mod;
}
int main() {
  cin >> k >> pa >> pb;
  invbase = inv(pa + pb);
  invb = inv(pb);
  memset(dp, -1, sizeof(dp[0][0]) * maxn * maxn);
  cout << getdp(1, 0);
}
