#include <bits/stdc++.h>
using namespace std;
const int mod = 1000000007;
int ksm(long long a, int b, int c = 1) {
  for (; b; b /= 2, a = a * a % mod)
    if (b & 1) c = c * a % mod;
  return c;
}
const int N = 1200;
inline void upd(int& x, const int& y) { x = (x + y) % mod; }
int dp[N][N], ans, k, pa, pb, p, q;
int main() {
  cin >> k >> pa >> pb;
  p = ksm((pa + pb) % mod, mod - 2, pa);
  q = ksm((pa + pb) % mod, mod - 2, pb);
  dp[1][0] = 1;
  for (int i = 1; i < k; i++) {
    for (int j = 0; j < k; j++) {
      if (j + i >= k)
        upd(ans, (long long)dp[i][j] * q % mod * (i + j) % mod);
      else
        upd(dp[i][j + i], (long long)dp[i][j] * q % mod);
      upd(dp[i + 1][j], (long long)dp[i][j] * p % mod);
    }
  }
  for (int i = 0; i < k; i++) {
    upd(ans, (long long)dp[k][i] * (i + k - 1) % mod);
    upd(ans, (long long)dp[k][i] * ksm(q, mod - 2) % mod);
  }
  cout << ans << endl;
  return 0;
}
