#include <bits/stdc++.h>
using namespace std;
const double PI = acos(-1.0);
const double eps = 1e-6;
const int INF = 0x3f3f3f3f;
const int maxn = 1000 + 11;
const int MOD = 1e9 + 7;
int N, M, T, P, Q, K;
long long pa, pb;
int mem[maxn][maxn];
long long qpow(long long a, long long n) {
  long long res = 1LL;
  while (n > 0) {
    if (n & 1) res = (res * a) % MOD;
    a = (a * a) % MOD;
    n >>= 1;
  }
  return res;
}
int DP(int i, int j) {
  if (i + j >= K) return (i + j + pa * qpow(pb, MOD - 2)) % MOD;
  int &res = mem[i][j];
  if (res != -1) return res;
  return res = ((pa * DP(i + 1, j) % MOD + pb * DP(i, i + j) % MOD) *
                qpow(pa + pb, MOD - 2)) %
               MOD;
}
int main() {
  while (cin >> K >> pa >> pb) {
    memset(mem, -1, sizeof(mem));
    cout << DP(1, 0) << endl;
  }
  return 0;
}
