#include <bits/stdc++.h>
using namespace std;
const long long MOD = 1e9 + 7;
const int MAXN = 1005;
long long dp[MAXN][MAXN];
long long k, pa, pb;
long long binpow(long long numm, long long poww) {
  if (poww == 0) return 1;
  if (poww % 2 == 0) return (binpow((numm * numm) % MOD, poww / 2)) % MOD;
  return (numm * binpow(numm, poww - 1)) % MOD;
}
long long rev(long long numm) { return binpow(numm, MOD - 2); }
long long revaplusb, revb;
long long gett(long long a, long long ab) {
  if (dp[a][ab]) return dp[a][ab];
  if (a + ab >= k) return dp[a][ab] = ((pa * revb) % MOD + a + ab) % MOD;
  return dp[a][ab] =
             ((((gett(a + 1, ab) * pa) % MOD + gett(a, a + ab) * pb) % MOD) *
              revaplusb) %
             MOD;
}
int main() {
  cin >> k >> pa >> pb;
  revaplusb = rev(pa + pb);
  revb = rev(pb);
  cout << gett(1, 0) << endl;
  return 0;
}
