#include <bits/stdc++.h>
using namespace std;
const int mod = 998244353;
inline int read() {
  int w = 1, s = 0;
  char ch = getchar();
  while (!isdigit(ch)) {
    if (ch == '-') w = -1;
    ch = getchar();
  }
  while (isdigit(ch)) {
    s = s * 10 + ch - '0';
    ch = getchar();
  }
  return w * s;
}
inline long long ksm(long long x, long long y) {
  long long res = 1;
  while (y) {
    if (y & 1) res = res * x % mod;
    x = x * x % mod;
    y >>= 1;
  }
  return res;
}
long long f[2020], cp[2020][2020], S[2020], n, p, Inv2;
inline void Solvecp() {
  cp[1][0] = cp[1][1] = 1;
  for (register int i = 2; i <= n; ++i) {
    cp[i][0] = 1;
    for (register int j = 1; j <= i; ++j)
      cp[i][j] = (1ll * cp[i - 1][j - 1] * ksm(p, i - j) % mod +
                  1ll * cp[i - 1][j] * ksm(1 + mod - p, j) % mod) %
                 mod;
  }
}
inline void SolveS() {
  S[1] = 1;
  for (register int i = 2; i <= n; ++i) {
    S[i] = 1;
    for (register int j = 1; j < i; ++j)
      S[i] = (S[i] - 1ll * cp[i][j] * S[j] % mod + mod) % mod;
  }
}
inline int get(int x) { return 1ll * x * (x - 1) % mod * Inv2 % mod; }
inline void getAns() {
  f[0] = f[1] = 0;
  for (register int i = 2; i <= n; ++i) {
    long long K = 1ll * cp[i][i] * S[i] % mod;
    long long res = 0;
    for (register int j = 1; j < i; ++j) {
      res = (res +
             1ll * S[j] * cp[i][j] % mod *
                 ((get(j) + 1ll * j * (i - j) % mod + f[j] + f[i - j]) % mod)) %
            mod;
      res %= mod;
    }
    f[i] = (res + K * get(i) % mod) * ksm(1 + mod - K, mod - 2) % mod;
  }
  cout << f[n] << "\n";
}
int main() {
  n = read();
  Inv2 = ksm(2, mod - 2);
  int a = read(), b = read();
  p = 1ll * a * ksm(b, mod - 2) % mod;
  Solvecp();
  SolveS();
  getAns();
  return 0;
}
