#include <bits/stdc++.h>
using namespace std;
const int Mod = 1e9 + 7, MAXN = 1e3 + 5;
int p, X, Y, x, y, Px, Py, Pxy, P, dp[MAXN][MAXN];
void exgcd(int a, int b, int &x, int &y) {
  if (b == 0) {
    x = 1;
    y = 0;
    return;
  }
  exgcd(b, a % b, x, y);
  int t = x;
  x = y;
  y = t - a / b * y;
  return;
}
int Inv(int a, int b) {
  exgcd(a, b, x, y);
  return (x % b + b) % b;
}
int DP(int x_, int y_) {
  if (x_ + y_ >= p) return (x_ + y_ + Pxy) % Mod;
  if (dp[x_][y_]) return dp[x_][y_];
  dp[x_][y_] = ((long long)Px * DP(x_ + 1, y_) % Mod +
                (long long)Py * DP(x_, y_ + x_) % Mod) %
               Mod;
  return dp[x_][y_];
}
int main() {
  scanf("%d%d%d", &p, &X, &Y);
  P += X + Y;
  Px = (long long)X * Inv(P, Mod) % Mod;
  Py = (long long)Y * Inv(P, Mod) % Mod;
  Pxy = (long long)X * Inv(Y, Mod) % Mod;
  printf("%d", DP(1, 0));
  return 0;
}
