#include <bits/stdc++.h>
using namespace std;
const long long mod = 1e9 + 7;
long long dp_prob[1010][1010], dp_expv[1010][1010];
inline long long pow2(long long a, long long b) {
  long long res = 1;
  a %= mod;
  while (b > 0) {
    if (b & 1) res = res * a % mod;
    b >>= 1;
    a = a * a % mod;
  }
  return res;
}
inline long long getInv(long long x) { return pow2(x, mod - 2); }
int main() {
  int k, pa, pb;
  scanf("%d%d%d", &k, &pa, &pb);
  long long inv = getInv(pa + pb);
  long long pb_inv = getInv(pb);
  long long pa_pb = pa * pb_inv % mod;
  dp_prob[0][1] = 1;
  dp_expv[0][1] = 0;
  long long ans = 0;
  for (int i = 0; i < k; i++) {
    for (int j = 1; j <= k; j++) {
      if (i + j >= k) continue;
      dp_prob[i + j][j] =
          (dp_prob[i + j][j] + dp_prob[i][j] * pb % mod * inv % mod) % mod;
      dp_prob[i][j + 1] =
          (dp_prob[i][j + 1] + dp_prob[i][j] * pa % mod * inv % mod) % mod;
    }
  }
  for (int i = 0; i < k; i++) {
    for (int j = 0; j <= k; j++) {
      if (i + j >= k) ans = (ans + dp_prob[i][j] * (i + j + pa_pb) % mod) % mod;
    }
  }
  printf("%lld\n", ans);
  return 0;
}
