#include <bits/stdc++.h>
using namespace std;
int const maxn = 1005, mod = 1e9 + 7;
int k, a, b, c, f[maxn * 2][2 * maxn];
bool vis[maxn][maxn];
int pw(int a, int b) {
  int ret = 1;
  for (; b; b >>= 1, a = ((long long)a * a) % mod)
    if (b & 1) ret = ((long long)ret * a) % mod;
  return ret;
}
int dp(int i, int j) {
  if (vis[i][j]) return f[i][j];
  vis[i][j] = 1;
  if (i + j >= k) return f[i][j] = (i + j + c) % mod;
  f[i][j] = ((long long)a * dp(i + 1, j) + (long long)b * dp(i, i + j)) % mod;
  return f[i][j];
}
int main() {
  int pa, pb;
  scanf("%d%d%d", &k, &pa, &pb);
  int tmp = pw(pa + pb, mod - 2);
  a = (long long)pa * tmp % mod;
  b = (long long)pb * tmp % mod;
  c = (long long)a * pw(b, mod - 2) % mod;
  printf("%d\n", dp(1, 0));
  return 0;
}
