#include <bits/stdc++.h>
using namespace std;
const int N = 3100;
const int mod = 1e9 + 7;
int bin_pow(int a, int n) {
  int res = 1;
  while (n) {
    if (n & 1) res = (res * 1ll * a) % mod;
    n >>= 1;
    a = (a * 1ll * a) % mod;
  }
  return res;
}
int inv(int a) { return bin_pow(a, mod - 2); }
void add(int& a, int& b, int c, int d) {
  int cur1 = (a * 1ll * d + b * 1ll * c) % mod;
  int cur2 = (b * 1ll * d) % mod;
  a = cur1;
  b = cur2;
}
void add(pair<int, int>& a, pair<int, int> b) {
  if (a.first == 0) {
    a = b;
    return;
  }
  pair<int, int> c;
  c.first = (a.first * 1ll * b.second + a.second * 1ll * b.first) % mod;
  c.second = (a.second * 1ll * b.second) % mod;
  a = c;
}
pair<int, int> dp[N][N];
int main() {
  int k, pa, pb;
  cin >> k >> pa >> pb;
  int ans_a = k;
  int ans_b = 1;
  dp[1][0] = {1, 1};
  for (int cnt_a = 1; cnt_a <= k + 5; ++cnt_a) {
    for (int cnt_seq = 0; cnt_seq <= 2 * k + 5; ++cnt_seq) {
      int a = dp[cnt_a][cnt_seq].first;
      int b = dp[cnt_a][cnt_seq].second;
      if (a == 0 || b == 0) continue;
      if (cnt_seq >= k) {
        add(ans_a, ans_b, a, b);
      } else if (cnt_a + cnt_seq >= k) {
        int aa = (pb * 1ll * (cnt_a + cnt_seq - k) + pa) % mod;
        int bb = pb;
        a = (a * 1ll * aa) % mod;
        b = (b * 1ll * bb) % mod;
        add(ans_a, ans_b, a, b);
      } else {
        add(dp[cnt_a + 1][cnt_seq],
            {(a * 1ll * pa % mod), (b * 1ll * (pa + pb) % mod)});
        if (cnt_seq + cnt_a <= 2 * k + 5)
          add(dp[cnt_a][cnt_seq + cnt_a],
              {(a * 1ll * pb % mod), (b * 1ll * (pa + pb) % mod)});
      }
    }
  }
  int ans = (ans_a * 1ll * inv(ans_b)) % mod;
  cout << ans << endl;
  return 0;
}
