#include <bits/stdc++.h>
using namespace std;
int read() {
  char ch = getchar();
  int x = 0, flag = 1;
  for (; !isdigit(ch); ch = getchar())
    if (ch == '-') flag *= -1;
  for (; isdigit(ch); ch = getchar()) x = x * 10 + ch - 48;
  return x * flag;
}
void write(int x) {
  if (x < 0) putchar('-'), x = -x;
  if (x >= 10) write(x / 10);
  putchar(x % 10 + 48);
}
const int Maxn = 1009, Mod = 1e9 + 7;
int k, p1, p2, u, s;
int fpm(int base, int tims) {
  int r = 1;
  while (tims) {
    if (tims & 1) r = 1ll * r * base % Mod;
    base = base * 1ll * base % Mod;
    tims >>= 1;
  }
  return r;
}
void init() {
  k = read(), p1 = read(), p2 = read();
  u = fpm(p1 + p2, Mod - 2);
  p1 = p1 * 1ll * u % Mod;
  p2 = p2 * 1ll * u % Mod;
  s = fpm(p2, Mod - 2);
}
int dp[Maxn][Maxn];
int dfs(int a, int l) {
  if (dp[a][l]) return dp[a][l];
  if (a + l >= k) return dp[a][l] = (a + 1ll * p1 * s % Mod + l) % Mod;
  return dp[a][l] =
             (1ll * p1 * dfs(a + 1, l) + 1ll * p2 * dfs(a, l + a) % Mod) % Mod;
}
void solve() { printf("%d\n", dfs(1, 0)); }
int main() {
  init();
  solve();
  return 0;
}
