#include <bits/stdc++.h>
using namespace std;
const int N = 2e3 + 2, M = 998244353;
int n, a, b, p, q, ans[N], strong[N], want[N][N], x[N], y[N];
int power(int base, int to) {
  int ret = 1;
  while (to) {
    if (to & 1) ret = ret * 1LL * base % M;
    to >>= 1;
    base = base * 1LL * base % M;
  }
  return ret;
}
void add(int &a, int b) {
  a += b;
  if (a >= M) a -= M;
  if (a < 0) a += M;
}
int main() {
  cin >> n >> a >> b;
  p = a * 1LL * power(b, M - 2) % M;
  q = (1 - p + M) % M;
  x[0] = y[0] = 1;
  for (int i = 1; i < N; i++) {
    x[i] = x[i - 1] * 1LL * p % M;
    y[i] = y[i - 1] * 1LL * q % M;
  }
  want[0][0] = 1;
  for (int i = 0; i <= n; i++)
    for (int j = 0; j <= i; j++) {
      add(want[i + 1][j], want[i][j] * 1LL * x[j] % M);
      add(want[i + 1][j + 1], want[i][j] * 1LL * y[i - j] % M);
    }
  for (int i = 1; i <= n; i++) {
    strong[i] = 1;
    for (int j = 1; j < i; j++)
      add(strong[i], -strong[j] * 1LL * want[i][j] % M);
  }
  ans[0] = ans[1] = 0;
  for (int i = 2; i <= n; i++) {
    for (int j = 1; j < i; j++) {
      int temp = want[i][j] * 1LL * strong[j] % M;
      int temp1 = j * (i - j) + j * (j - 1) / 2;
      add(temp1, ans[i - j]);
      add(temp1, ans[j]);
      add(ans[i], temp * 1LL * temp1 % M);
    }
    add(ans[i], i * (i - 1LL) / 2 % M * strong[i] % M);
    ans[i] = ans[i] * 1LL * power((1 - strong[i] + M) % M, M - 2) % M;
  }
  printf("%d\n", ans[n]);
}
