#include <bits/stdc++.h>
using namespace std;
const long double pi = acosl(-1);
const int maxn = 2010;
const long long mod = 998244353;
const long long inf = 1e18;
const long double eps = 1e-10;
int n;
long long cp[maxn][maxn], sc[maxn], dp[maxn];
long long A[maxn], B[maxn], C[maxn], INV[maxn];
long long pwr(long long x, long long p) {
  if (p == 0) return 1;
  return p % 2 ? x * pwr(x * x % mod, p / 2) % mod : pwr(x * x % mod, p / 2);
}
inline long long inv(long long x) { return pwr(x, mod - 2); }
void init(long long a, long long b) {
  A[0] = B[0] = C[0] = 1;
  for (int i = 1; i < maxn; i++)
    A[i] = A[i - 1] * a % mod, B[i] = B[i - 1] * b % mod,
    C[i] = C[i - 1] * (b - a) % mod, INV[i] = inv(B[i]);
  for (int i = 1; i < maxn; i++) {
    cp[i][0] = cp[i][i] = 1;
    for (int j = 1; j < i; j++) {
      cp[i][j] = cp[i - 1][j] * C[j] % mod * INV[j] % mod +
                 cp[i - 1][j - 1] * A[i - j] % mod * INV[i - j] % mod;
      cp[i][j] %= mod;
    }
  }
  sc[1] = 1;
  for (int i = 2; i < maxn; i++) {
    long long tmp = 0;
    for (int j = 1; j < i; j++) {
      tmp += sc[j] * cp[i][j] % mod;
    }
    sc[i] = ((1 - tmp) % mod + mod) % mod;
  }
}
int a, b;
int main() {
  scanf("%d%d%d", &n, &a, &b);
  init(a, b);
  for (int i = 2; i < n + 1; i++) {
    long long C = 0;
    for (int j = 1; j < i; j++) {
      C += sc[j] * cp[i][j] % mod *
           (j * (i - j) + j * (j - 1) / 2 + dp[j] + dp[i - j]) % mod;
      C %= mod;
    }
    dp[i] = (sc[i] * (i * (i - 1) / 2) % mod + C) *
            inv((1 - sc[i] + mod) % mod) % mod;
  }
  printf("%lld\n", dp[n]);
}
