#include <bits/stdc++.h>
inline void read(int &x) {
  static char c;
  for (c = getchar(); !('0' <= c && c <= '9'); c = getchar())
    ;
  for (x = 0; ('0' <= c && c <= '9'); c = getchar()) x = x * 10 + c - 48;
}
long long qsm(long long x, long long y) {
  static long long anw;
  for (anw = 1; y; y >>= 1, x = x * x % 998244353)
    if (y & 1) anw = anw * x % 998244353;
  return anw;
}
using namespace std;
long long p, cp[2007][2007], s[2007], ans[2007];
int a, b, n;
int main() {
  read(n);
  read(a);
  read(b);
  p = a * qsm(b, 998244353 - 2) % 998244353;
  cp[0][0] = 1;
  for (int i = 0; i < n; i++)
    for (int j = 0; j <= i; j++)
      (cp[i + 1][j] += qsm(p, j) * cp[i][j] % 998244353) %= 998244353,
          (cp[i + 1][j + 1] += qsm((998244353 + 1 - p) % 998244353, i - j) *
                               cp[i][j] % 998244353) %= 998244353;
  s[1] = 1;
  for (int i = 1; i <= n; i++, s[i] = 1)
    for (int j = 1; j < i; j++)
      s[i] = ((s[i] - s[j] * cp[i][j] % 998244353) % 998244353 + 998244353) %
             998244353;
  for (int i = 2; i <= n; i++) {
    for (int j = 1; j < i; j++)
      ans[i] = ans[i] + s[j] * cp[i][j] % 998244353 *
                            (((ans[j] + ans[i - j]) % 998244353 +
                              (j - 1) * j / 2 + j * (i - j)) %
                             998244353) %
                            998244353,
      ans[i] = ans[i] % 998244353;
    ans[i] = (ans[i] + i * (i - 1) / 2 * s[i]) % 998244353;
    ans[i] = ans[i] * qsm((998244353 + 1 - s[i]) % 998244353, 998244353 - 2) %
             998244353;
  }
  printf("%lld\n", ans[n]);
  return 0;
}
