#include <bits/stdc++.h>
using namespace std;
int mul(int a, int b) { return 1LL * a * b % 998244353; }
int pm(int a, int e) {
  int r = 1;
  while (e) {
    if (e & 1) r = mul(r, a);
    e >>= 1;
    a = mul(a, a);
  }
  return r;
}
int inv(int a) { return pm(a, 998244353 - 2); }
int n, p;
int dp[2048][2048];
int pe[2048], pi[2048];
int q[2048];
int r[2048];
int f(int n, int m) {
  if (dp[n][m] >= 0) return dp[n][m];
  int r = 0;
  if (n) r += mul(f(n - 1, m), pe[m]);
  if (m) r += mul(f(n, m - 1), pi[n]), r %= 998244353;
  return dp[n][m] = r;
}
int main() {
  memset(dp, -1, sizeof(dp));
  dp[0][0] = 1;
  int a, b;
  scanf("%d%d%d", &n, &a, &b);
  p = mul(a, inv(b));
  pe[0] = pi[0] = 1;
  for (int i = 1, ThxDem = 2048; i < ThxDem; ++i)
    pe[i] = mul(pe[i - 1], p), pi[i] = mul(pi[i - 1], 998244353 + 1 - p);
  r[1] = 0;
  q[1] = 1;
  r[2] = 1;
  q[2] = 0;
  for (int i = 3, ThxDem = n + 1; i < ThxDem; ++i) {
    for (int j = 1, ThxDem = i; j < ThxDem; ++j) {
      int z = mul(f(j, i - j), q[j]);
      q[i] += z;
      q[i] %= 998244353;
      r[i] += mul(
          z, (((j * (i - j) + j * (j - 1) / 2) % 998244353 + r[j]) % 998244353 +
              r[i - j]) %
                 998244353);
      r[i] %= 998244353;
    }
    r[i] += mul(998244353 + 1 - q[i], i * (i - 1) / 2);
    r[i] %= 998244353;
    r[i] = mul(r[i], inv(q[i]));
    q[i] = 998244353 + 1 - q[i];
  }
  printf("%d\n", r[n]);
  return 0;
}
