#include <bits/stdc++.h>
const int m = 1e9 + 7, N = 1005;
void gcd(int a, int b, int &x, int &y) {
  if (!b) {
    x = 1;
    y = 0;
  } else {
    gcd(b, a % b, y, x);
    y -= x * (a / b);
  }
}
int inv(int a) {
  int x, y;
  gcd(a, m, x, y);
  return (x % m + m) % m;
}
long long f[N][N], k, pa, pb, A, B, C;
int main() {
  scanf("%d %d %d", &k, &pa, &pb);
  A = (pa * inv(pa + pb) % m);
  B = (1 - A + m) % m;
  C = (pa * inv(pb) % m);
  for (int i = k; i >= 1; i--)
    for (int j = k; j >= 0; j--)
      f[i][j] = i + j >= k ? (i + j + C) % m
                           : (A * f[i + 1][j] + B * f[i][i + j]) % m;
  printf("%d", f[1][0]);
  return 0;
}
