#include <bits/stdc++.h>
using namespace std;
const int MOD = 998244353;
long long p[3000], negp[3000], cp[3000][3000], strong[3000], ans[3000];
long long getinv(int x) {
  int tmp = MOD - 2;
  long long base = x, inv = 1;
  while (tmp > 0) {
    if (tmp % 2 == 1) inv = (inv * base) % MOD;
    base = (base * base) % MOD;
    tmp >>= 1;
  }
  return inv;
}
int main() {
  int n, a, b;
  cin >> n >> a >> b;
  long long invb = getinv(b);
  p[0] = 1;
  negp[0] = 1;
  for (int i = 1; i <= n; i++) {
    p[i] = p[i - 1] * a % MOD * invb % MOD;
    negp[i] = negp[i - 1] * (b - a) % MOD * invb % MOD;
  }
  for (int i = 0; i <= n; i++) {
    cp[i][0] = 1;
    for (int j = 1; j <= i; j++)
      cp[i][j] =
          (cp[i - 1][j] * negp[j] % MOD + cp[i - 1][j - 1] * p[i - j] % MOD) %
          MOD;
  }
  for (int i = 1; i <= n; i++) {
    strong[i] = 1;
    for (int j = 1; j < i; j++)
      strong[i] = ((strong[i] - strong[j] * cp[i][j]) % MOD + MOD) % MOD;
  }
  ans[0] = ans[1] = 0;
  for (int i = 2; i <= n; i++) {
    long long tmp = 0;
    for (int j = 1; j < i; j++)
      tmp = (tmp + strong[j] * cp[i][j] % MOD *
                       (j * (i - j) + j * (j - 1) / 2 + ans[j] + ans[i - j]) %
                       MOD) %
            MOD;
    tmp = (tmp + strong[i] * i * (i - 1) / 2) % MOD;
    ans[i] = tmp * getinv(MOD + 1 - strong[i]) % MOD;
  }
  cout << ans[n] << endl;
}
