#include <bits/stdc++.h>
using namespace std;
const int mod = 1e9 + 7;
long long A, B;
long long pow2(long long a, long long b) {
  long long ans = 1;
  while (b) {
    if (b % 2 == 1) ans = ans * a % mod;
    a = a * a % mod;
    b /= 2;
  }
  return ans;
}
int k, pa, pb;
long long dp[1005][1005];
bool vis[1005][1005];
long long dfs(int a, int ab) {
  if (ab >= k) return ab;
  if (vis[a][ab]) return dp[a][ab];
  vis[a][ab] = 1;
  if (a + ab >= k) {
    return dp[a][ab] = (B * (a + ab) % mod * pow2(1 - A + mod, mod - 2) % mod +
                        B * A % mod * pow2(1 - A + mod, mod - 2) % mod *
                            pow2(1 - A + mod, mod - 2) % mod) %
                       mod;
  } else {
    return dp[a][ab] = (A * dfs(a + 1, ab) + B * dfs(a, ab + a)) % mod;
  }
}
int main() {
  scanf("%d%d%d", &k, &pa, &pb);
  A = pa * pow2(pa + pb, mod - 2) % mod;
  B = pb * pow2(pa + pb, mod - 2) % mod;
  printf("%lld\n", A * pow2(1 - B + mod, mod - 2) % mod * dfs(1, 0) % mod);
}
