#include <bits/stdc++.h>
using namespace std;
const int INF = 0x3fffffff;
const int SINF = 0x7fffffff;
const long long LINF = 0x3fffffffffffffff;
const long long SLINF = 0x7fffffffffffffff;
const int MAXN = 2007;
const int MOD = 998244353;
int n;
int p, q, ipa, ipb;
int divs[MAXN][MAXN];
int scc[MAXN];
int dp[MAXN];
int pwp[MAXN], pwq[MAXN];
void init();
void input();
void work();
int add(int x, int y) {
  x += y;
  if (x >= MOD) x -= MOD;
  return x;
}
void addv(int &x, int y) {
  x += y;
  if (x >= MOD) x -= MOD;
}
int dec(int x, int y) {
  x -= y;
  if (x < 0) x += MOD;
  return x;
}
void decv(int &x, int y) {
  x -= y;
  if (x < 0) x += MOD;
}
int qpow(int a, int b) {
  long long base = a, ans = 1;
  while (b) {
    if (b & 1) (ans *= base) %= MOD;
    (base *= base) %= MOD;
    b >>= 1;
  }
  return static_cast<int>(ans);
}
int main() {
  init();
  input();
  work();
}
void init() { ios::sync_with_stdio(false); }
void input() { scanf("%d%d%d", &n, &ipa, &ipb); }
void work() {
  p = static_cast<long long>(ipa) * qpow(ipb, MOD - 2) % MOD;
  q = dec(1, p);
  pwp[0] = pwq[0] = 1;
  for (int i = 1; i < MAXN; ++i)
    pwp[i] = static_cast<long long>(pwp[i - 1]) * p % MOD,
    pwq[i] = static_cast<long long>(pwq[i - 1]) * q % MOD;
  divs[0][0] = 1;
  for (int i = 1; i <= n; ++i) {
    for (int j = 0; j < i; ++j) {
      addv(divs[i][j + 1],
           divs[i - 1][j] * static_cast<long long>(pwq[i - 1 - j]) % MOD);
      addv(divs[i][j], divs[i - 1][j] * static_cast<long long>(pwp[j]) % MOD);
    }
  }
  scc[1] = 1;
  for (int i = 2; i <= n; ++i) {
    scc[i] = 1;
    for (int j = 1; j < i; ++j)
      decv(scc[i], static_cast<long long>(divs[i][j]) * scc[j] % MOD);
  }
  dp[1] = 0;
  int se, np;
  for (int i = 2; i <= n; ++i) {
    se = 0;
    for (int j = 1; j < i; ++j) {
      np = static_cast<long long>(divs[i][j]) * scc[j] % MOD;
      addv(se, static_cast<long long>(np) *
                   (dp[j] + dp[i - j] + ((j * (j - 1)) >> 1) + (i - j) * j) %
                   MOD);
    }
    addv(se, static_cast<long long>(scc[i]) * (i * (i - 1) >> 1) % MOD);
    dp[i] = static_cast<long long>(qpow(dec(1, scc[i]), MOD - 2)) * se % MOD;
  }
  cout << dp[n] << endl;
}
