#include <bits/stdc++.h>
using namespace std;
const int N = 4005, P = 998244353;
inline void fix(long long &x) { x = (x % P + P) % P; }
long long n, p, trans[N][N], ans[N], strong[N];
long long power(long long a, long long k) {
  long long res = 1;
  for (a %= P; k; k >>= 1, a = a * a % P) {
    if (k & 1) res = res * a % P;
  }
  return res;
}
long long inverse(long long x) { return power(x, P - 2); }
int main(int argc, char *argv[]) {
  long long a, b;
  cin >> n >> a >> b;
  p = a * inverse(b) % P;
  for (int i = 0; i <= (n); ++i) {
    trans[i][0] = 1;
    for (int j = 1; j <= (i); ++j) {
      trans[i][j] = trans[i - 1][j] * power(1 - p, j) % P +
                    trans[i - 1][j - 1] * power(p, i - j) % P;
      fix(trans[i][j]);
    }
  }
  strong[1] = 1, strong[2] = 0;
  for (int i = 3; i <= (n); ++i) {
    strong[i] = 1;
    for (int j = 1; j < (i); ++j) {
      strong[i] += -trans[i][j] * strong[j] % P;
      strong[i] %= P;
    }
    fix(strong[i]);
  }
  ans[0] = 0, ans[1] = 0;
  for (int i = 2; i <= (n); ++i) {
    long long factor = 1 - strong[i] + P;
    factor %= P;
    long long now = i * (i - 1) / 2ll * strong[i] % P;
    for (int j = 1; j < (i); ++j) {
      now += strong[j] * trans[i][j] % P *
             ((j * (i - j) % P + j * (j - 1) / 2 + ans[j] + ans[i - j]) % P) %
             P;
      now %= P;
    }
    fix(factor);
    now *= inverse(factor);
    fix(now);
    ans[i] = now;
  }
  printf("%lld\n", ans[n]);
  return 0;
}
