#include <bits/stdc++.h>
using namespace std;
const long long mod = 998244353LL;
long long ppow[2010];
long long npow[2010];
long long cp[2010][2010];
long long strong[2010];
long long ans[2010];
long long exp(long long base, long long power) {
  if (power == 0LL) return 1LL;
  if (power == 1LL) return base;
  if (power % 2LL == 0LL) {
    long long temp = exp(base, power / 2);
    temp = (temp * temp) % mod;
    return temp;
  }
  long long temp = exp(base, power - 1);
  temp = (temp * base) % mod;
  return temp;
}
int main() {
  ios_base::sync_with_stdio(false);
  cin.tie(NULL);
  int n;
  long long a, b;
  cin >> n >> a >> b;
  long long p = (a * exp(b, mod - 2)) % mod;
  ppow[0] = 1LL;
  long long np = 1 - p + mod;
  npow[0] = 1LL;
  for (int i = 1; i <= n; i++) {
    ppow[i] = (ppow[i - 1] * p) % mod;
    npow[i] = (npow[i - 1] * np) % mod;
  }
  for (int i = 0; i <= n; i++) {
    for (int j = 0; j <= n; j++) {
      cp[i][j] = 0LL;
    }
  }
  cp[0][0] = 1LL;
  for (int i = 0; i <= n; i++) {
    for (int j = 0; j <= n; j++) {
      cp[i + 1][j] = (cp[i + 1][j] + ppow[j] * cp[i][j]) % mod;
      cp[i + 1][j + 1] = (cp[i + 1][j + 1] + npow[i - j] * cp[i][j]) % mod;
    }
  }
  strong[0] = strong[1] = 1LL;
  for (int i = 2; i <= n; i++) {
    strong[i] = 1LL;
    for (int j = 1; j < i; j++) {
      long long sub = (strong[j] * cp[i][j]) % mod;
      strong[i] = (strong[i] - sub);
      while (strong[i] < 0) strong[i] += mod;
    }
  }
  ans[1] = 0LL;
  for (int i = 2; i <= n; i++) {
    ans[i] = 0LL;
    for (int j = 1; j < i; j++) {
      long long fp = (strong[j] * cp[i][j]) % mod;
      long long sp =
          (j * (i - j) + (j * (j - 1)) / 2 + ans[j] + ans[i - j]) % mod;
      long long mult = (fp * sp) % mod;
      ans[i] = (ans[i] + mult) % mod;
    }
    ans[i] = (ans[i] + strong[i] * ((i * (i - 1LL)) / 2LL)) % mod;
    long long inv = exp(1 - strong[i] + mod, mod - 2);
    ans[i] = (ans[i] * inv) % mod;
  }
  cout << ans[n] << endl;
  cin >> n;
}
