#include <bits/stdc++.h>
using namespace std;
long long dp[2003][1003];
long long power(long long N, long long expo) {
  long long ans = 1;
  while (expo) {
    if (expo % 2) ans = ans * N % 1000000007;
    N = N * N % 1000000007;
    expo /= 2;
  }
  return ans;
}
int main() {
  int K, Pa, Pb;
  scanf("%d %d %d", &K, &Pa, &Pb);
  long long px = (long long)Pa * power(Pa + Pb, 1000000007 - 2) % 1000000007;
  long long py = (long long)Pb * power(Pa + Pb, 1000000007 - 2) % 1000000007;
  dp[0][1] = 1;
  long long ans = 0;
  for (int i = 0; i <= 2 * K; i++) {
    for (int j = 1; j <= K; j++) {
      if (i == 0 && j == 1) continue;
      if (j - 1 >= 0 && i < K) dp[i][j] = dp[i][j - 1] * px % 1000000007;
      if (i - j >= 0 && i - j < K) dp[i][j] += dp[i - j][j] * py % 1000000007;
      dp[i][j] %= 1000000007;
      if (i >= K) ans += dp[i][j] * i % 1000000007;
    }
  }
  for (int i = 0; i < K; i++) {
    long long x = dp[i][K] * py % 1000000007;
    long long y = px *
                  power((1 - px + 1000000007) % 1000000007, 1000000007 - 2) %
                  1000000007;
    long long tmpAns =
        x * y % 1000000007 * ((y + i + 1 + K) % 1000000007) % 1000000007;
    ans += tmpAns;
  }
  cout << ans % 1000000007 << "\n";
  return 0;
}
