#include <bits/stdc++.h>
using namespace std;
const long long mod = 1000000007;
const int N = 1005;
long long inv(long long a) {
  long long b = mod - 2, r = 1;
  while (b) {
    if (b & 1) r = r * a % mod;
    a = a * a % mod;
    b >>= 1;
  }
  return r;
}
long long pa, pb, val, k;
bool vis[N][N];
long long memo[N][N];
long long dp(int a, int ab) {
  if (ab >= k) return ab;
  if (ab + a >= k) return (a + val + ab) % mod;
  if (vis[a][ab]) return memo[a][ab];
  vis[a][ab] = true;
  memo[a][ab] = (pa * dp(a + 1, ab) % mod + pb * dp(a, ab + a) % mod) % mod;
  return memo[a][ab];
}
int main() {
  ios_base::sync_with_stdio(false);
  cin.tie(NULL);
  long long a, b;
  cin >> k >> a >> b;
  pa = a * inv((a + b) % mod) % mod;
  pb = b * inv((a + b) % mod) % mod;
  val = a * inv(b) % mod;
  cout << dp(1, 0) << endl;
}
