#include <bits/stdc++.h>
using namespace std;
const int oo = 0x3f3f3f3f;
const long long ooo = 9223372036854775807ll;
const int _cnt = 1000 * 1000 + 7;
const int _p = 998244353;
const int N = 200005;
const double PI = acos(-1.0);
const double eps = 1e-9;
int o(int x) { return x % _p; }
int gcd(int a, int b) { return b ? gcd(b, a % b) : a; }
int lcm(int a, int b) { return a / gcd(a, b) * b; }
void file_put() {
  freopen("filename.in", "r", stdin);
  freopen("filename.out", "w", stdout);
}
int a, b, n;
long long pk[2005], qk[2005], cp[2005][2005], strong[2005], ans[2005], p, q;
long long Pow(long long x, long long k) {
  long long ans = 1;
  for (; k; k >>= 1, x = x * x % _p)
    if (k & 1) (ans *= x) %= _p;
  return ans;
}
int main() {
  scanf("%d%d%d", &n, &a, &b);
  p = a * Pow(b, _p - 2) % _p, q = (1 - p) % _p;
  pk[0] = qk[0] = cp[0][0] = 1;
  for (int i = (1); i <= (n + 2); ++i)
    pk[i] = pk[i - 1] * p % _p, qk[i] = qk[i - 1] * q % _p, strong[i] = 1;
  for (int i = (1); i <= (n); ++i)
    for (int j = (0); j <= (i); ++j)
      if (j == 0 || j == i)
        cp[i][j] = 1;
      else
        cp[i][j] = (cp[i - 1][j] * qk[j] + cp[i - 1][j - 1] * pk[i - j]) % _p;
  for (int i = (2); i <= (n); ++i)
    for (int j = (1); j <= (i - 1); ++j)
      strong[i] -= strong[j] * cp[i][j] % _p, strong[i] %= _p;
  for (int i = (2); i <= (n); ++i) {
    for (int j = (1); j <= (i - 1); ++j)
      ans[i] +=
          strong[j] * cp[i][j] % _p *
          (ans[i - j] + j * (i - j) % _p + j * (j - 1) / 2 % _p + ans[j]) % _p,
          ans[i] %= _p;
    (ans[i] += i * (i - 1) / 2 % _p * strong[i] % _p) %= _p;
    (ans[i] *= Pow(1 - strong[i], _p - 2)) %= _p;
  }
  printf("%I64d\n", (ans[n] + _p) % _p);
  return 0;
}
