#include <bits/stdc++.h>
using namespace std;
const long long int MOD = 1e9 + 7;
const long long int INF = 1000111000111000111LL;
const long long int MAX = 1001713;
long long int modular_exp(long long int base, long long int exp,
                          long long int mod) {
  long long int res = 1;
  while (exp) {
    if (exp % 2 == 1) res = (res % mod * base % mod) % mod;
    base = (base % mod * base % mod) % mod;
    exp /= 2;
  }
  return res % mod;
}
long long int inverse_modulo(long long int x, long long int mod) {
  return modular_exp(x, mod - 2, mod);
}
long long int dp[1013][1013];
bool state[1013][1013];
long long int m1, m2;
long long int k;
long long int fun(long long int i, long long int j) {
  if (state[i][j]) {
    return dp[i][j];
  } else if (i + j >= k) {
    return (i + j + (m1 * inverse_modulo(m2, MOD))) % MOD;
  } else {
    state[i][j] = true;
    dp[i][j] = ((m1 * fun(i + 1, j)) % MOD + (m2 * fun(i, j + i)) % MOD) % MOD;
    return dp[i][j];
  }
}
int32_t main() {
  long long int pa, push_back;
  cin >> k >> pa >> push_back;
  long long int ans = 0;
  memset(state, false, sizeof state);
  memset(dp, 0, sizeof dp);
  m1 = pa * inverse_modulo(pa + push_back, MOD);
  m1 %= MOD;
  m2 = push_back * inverse_modulo(pa + push_back, MOD);
  m2 %= MOD;
  cout << fun(1, 0) << endl;
  return 0;
}
