#include <bits/stdc++.h>
using namespace std;
const long long nr = 1010;
const long long mod = 1e9 + 7;
inline long long read() {
  long long ret = 0;
  long long x = 1;
  char ch = getchar();
  while (!isdigit(ch)) {
    if (ch == '-') x = -1;
    ch = getchar();
  }
  while (isdigit(ch)) {
    ret = ret * 10 + ch - '0';
    ch = getchar();
  }
  return ret * x;
}
long long k;
long long pa;
long long pb;
long long f[2 * nr][2 * nr] = {0};
long long a, b;
long long ans = 0;
long long power(long long x, long long y) {
  long long ret = 1;
  while (y) {
    if (y & 1) ret = ret * x % mod;
    x = x * x % mod;
    y >>= 1;
  }
  return ret;
}
long long inv(long long x) { return power(x, mod - 2); }
int main() {
  k = read();
  cin >> pa >> pb;
  a = (pa)*inv(pa + pb) % mod;
  b = (pb)*inv(pa + pb) % mod;
  f[1][0] = 1;
  for (int i = 1; i < k; i++) {
    for (int j = 0; j < k; j++) {
      f[i + 1][j] += f[i][j] * a;
      f[i + 1][j] %= mod;
      if (i + j >= k) {
        ans += (i + j) * f[i][j] % mod * b;
        ans %= mod;
        continue;
      }
      f[i][i + j] += f[i][j] * b;
      f[i][i + j] %= mod;
    }
  }
  for (int j = 0; j < k; j++) {
    long long x = a * inv(b) % mod;
    ans += (k + x) * f[k][j] % mod;
    ans += j * f[k][j] % mod;
    ans %= mod;
  }
  cout << ans;
  return 0;
}
