#include <bits/stdc++.h>
using namespace std;
int k, p, q;
long long now1, now2;
long long f[1007][1007];
bool vis[1007][1007];
long long power(long long a, long long b) {
  long long ans = 1, now = a, left = b;
  while (left > 0) {
    if (left % 2 == 1) ans = (1LL * ans * now) % 1000000007;
    left /= 2;
    now = (1LL * now * now) % 1000000007;
  }
  return ans % 1000000007;
}
int calc(int x, int y) {
  if (y >= k) return 0;
  if (x >= k)
    return (x + 1LL * now1 * power(now2, 1000000007 - 2) % 1000000007) %
           1000000007;
  if (vis[x][y]) return f[x][y];
  vis[x][y] = true;
  int res = (1LL * now1 * calc(x + 1, y)) % 1000000007;
  res = (res + 1LL * now2 * (x + calc(x, x + y)) % 1000000007) % 1000000007;
  f[x][y] = res;
  return res;
}
int main() {
  scanf("%d%d%d", &k, &p, &q);
  int now = power(p + q, 1000000007 - 2);
  now1 = (1LL * p * now) % 1000000007;
  now2 = (1LL * q * now) % 1000000007;
  memset(f, 0, sizeof(f));
  memset(vis, false, sizeof(vis));
  printf("%d\n", calc(1, 0) % 1000000007);
  return 0;
}
