#include <bits/stdc++.h>
using namespace std;
long long dp[1007][1007];
int k;
long long pa, pb;
long long gcd(long long a, long long b) {
  if (!b) return a;
  return gcd(b, a % b);
}
long long pown(long long base, long long exp) {
  long long res = 1;
  while (exp > 0) {
    if (exp % 2) res = (res * base) % 1000000007;
    base = (base * base) % 1000000007;
    exp /= 2;
  }
  return res % 1000000007;
}
void solve(int i, int j) {
  if (i + j >= k) {
    long long m = pb * (i + j) + pa;
    long long n = pb;
    dp[i][j] =
        ((m / gcd(m, n)) * pown((n / gcd(m, n)), 1000000007 - 2)) % 1000000007;
    return;
  }
  if (!dp[i + 1][j]) solve(i + 1, j);
  if (!dp[i][i + j]) solve(i, i + j);
  long long m = (pa * dp[i + 1][j] + pb * dp[i][i + j]) % 1000000007;
  long long n = (pa + pb) % 1000000007;
  dp[i][j] =
      ((m / gcd(m, n)) * pown(n / gcd(m, n), 1000000007 - 2)) % 1000000007;
  return;
}
int main() {
  ios_base::sync_with_stdio(false);
  cin.tie(NULL);
  cin >> k >> pa >> pb;
  solve(1, 0);
  cout << dp[1][0] << endl;
}
