#include <bits/stdc++.h>
using namespace std;
template <typename T>
inline void read(T &x) {
  x = 0;
  char c = getchar();
  bool flag = false;
  while (!isdigit(c)) {
    if (c == '-') flag = true;
    c = getchar();
  }
  while (isdigit(c)) {
    x = (x << 1) + (x << 3) + (c ^ 48);
    c = getchar();
  }
  if (flag) x = -x;
}
long long n, a, b, v;
long long pw1[2010], pw2[2010], f[2010], g[2010], h[2010][2010];
long long inv(long long x) {
  long long v = 1, y = 998244353 - 2;
  while (y) {
    if (y & 1) v = v * x % 998244353;
    x = x * x % 998244353, y >>= 1;
  }
  return v;
}
int main() {
  read(n), read(a), read(b), v = a * inv(b) % 998244353, pw1[0] = pw2[0] = 1;
  for (int i = 1; i <= n; ++i)
    pw1[i] = pw1[i - 1] * v % 998244353,
    pw2[i] = pw2[i - 1] * (1 - v + 998244353) % 998244353;
  for (int i = 0; i <= n; ++i) h[i][0] = g[i] = 1;
  for (int i = 1; i <= n; ++i)
    for (int j = 1; j <= i; ++j)
      h[i][j] = (h[i - 1][j - 1] * pw1[i - j] % 998244353 +
                 h[i - 1][j] * pw2[j] % 998244353) %
                998244353;
  for (int i = 1; i <= n; ++i)
    for (int j = 1; j < i; ++j)
      g[i] = (g[i] - g[j] * h[i][j] % 998244353 + 998244353) % 998244353;
  for (int i = 2; i <= n; ++i) {
    f[i] = g[i] * h[i][i] % 998244353 * i * (i - 1) / 2 % 998244353;
    for (int j = 1; j < i; ++j)
      f[i] = (f[i] + g[j] * h[i][j] % 998244353 *
                         (f[i - j] + f[j] + j * (j - 1) / 2 + (i - j) * j) %
                         998244353) %
             998244353;
    f[i] = f[i] * inv(1 - g[i] * h[i][i] % 998244353 + 998244353) % 998244353;
  }
  printf("%lld", f[n]);
  return 0;
}
