#include <bits/stdc++.h>
using namespace std;
const int mod = 998244353;
int po(int x, int n) {
  int ret = 1;
  while (n) {
    if (n & 1) ret = 1LL * ret * x % mod;
    x = 1LL * x * x % mod;
    n >>= 1;
  }
  return ret;
}
int inv(int x) { return po(x, mod - 2); }
int N, A, B, P;
int Po1[2020], Po2[2020];
int cc3[2020][2020];
int dp3(int a, int b) {
  int &ret = cc3[a][b];
  if (ret != -1) return ret;
  if (a == 0 && b == 0) return ret = 1;
  ret = 0;
  if (a) {
    ret += 1LL * Po2[b] * dp3(a - 1, b) % mod;
    ret %= mod;
  }
  if (b) {
    ret += 1LL * Po1[a] * dp3(a, b - 1) % mod;
    ret %= mod;
  }
  return ret;
}
int cc2[2020];
int dp2(int n) {
  int &ret = cc2[n];
  if (ret != -1) return ret;
  ret = 1;
  for (int i = 1; i < n; i++) {
    int tmp = dp3(i, n - i);
    tmp = 1LL * tmp * dp2(i) % mod;
    ret += mod - tmp;
    ret %= mod;
  }
  return ret;
}
int cc1[2020];
int dp1(int n) {
  int &ret = cc1[n];
  if (ret != -1) return ret;
  if (n == 1) return ret = 0;
  ret = 0;
  for (int i = 1; i < n; i++) {
    int tmp = dp3(i, n - i);
    tmp = 1LL * tmp * dp2(i) % mod;
    tmp =
        1LL * tmp * (i * (i - 1) / 2 + i * (n - i) + dp1(i) + dp1(n - i)) % mod;
    ret += tmp;
    ret %= mod;
  }
  ret += 1LL * dp2(n) * (n * (n - 1) / 2) % mod;
  ret = 1LL * ret * inv((1 + mod - dp2(n)) % mod) % mod;
  return ret;
}
int main() {
  scanf("%d %d %d", &N, &A, &B);
  P = 1LL * A * inv(B) % mod;
  Po1[0] = 1;
  Po2[0] = 1;
  for (int i = 1; i < 2020; i++) {
    Po1[i] = 1LL * P * Po1[i - 1] % mod;
    Po2[i] = 1LL * (1 + mod - P) * Po2[i - 1] % mod;
  }
  memset(cc1, -1, sizeof(cc1));
  memset(cc2, -1, sizeof(cc2));
  memset(cc3, -1, sizeof(cc3));
  printf("%d", dp1(N));
}
