#include <bits/stdc++.h>
#pragma warning(disable : 4996)
using namespace std;
const int INF = 0x3f3f3f3f;
const long long int INFLL = 0x3f3f3f3f3f3f3f3f;
#pragma comment(linker, "/STACK:1024000000,1024000000")
const long long int mod = 1e9 + 7;
long long fpow(long long a, long long n, long long mod) {
  if (n == 0)
    return 1;
  else if (n & 1)
    return a * fpow(a, n - 1, mod) % mod;
  else {
    long long num = fpow(a, n / 2, mod) % mod;
    return num * num % mod;
  }
}
long long int getinv(long long int a, long long int mod) {
  return fpow(a, mod - 2, mod);
}
long long int dp[1010][1010];
int main() {
  ios::sync_with_stdio(0), cin.tie(0), cout.tie(0);
  int k;
  long long int pa, pb;
  cin >> k >> pa >> pb;
  (pa *= getinv(pa + pb, mod)) %= mod;
  pb = (1 - pa + mod) % mod;
  long long int t = pa * getinv(pb, mod) % mod;
  for (int i = (k); i >= (1); i--) {
    for (int j = (k); j >= (0); j--) {
      if (i + j >= k)
        dp[i][j] = t + i + j;
      else
        dp[i][j] = pa * dp[i + 1][j] + pb * dp[i][i + j];
      dp[i][j] %= mod;
    }
  }
  cout << dp[1][0];
}
