#include <bits/stdc++.h>
int a[400001 + 7], b[400001 + 7], c[400001 + 7], rev[400001 + 7];
int fac[400001 + 7], inv[400001 + 7], ifac[400001 + 7], n, m, lim, l, A, B;
using namespace std;
int ksm(int u, int v) {
  int s = 1;
  for (int i = v; i; i >>= 1) {
    if (i & 1) s = 1ll * s * u % 998244353;
    u = 1ll * u * u % 998244353;
  }
  return s;
}
void ntt(int *a, int type) {
  for (int i = 1; i < lim; i++)
    if (i < rev[i]) swap(a[rev[i]], a[i]);
  for (int i = 1; i < lim; i <<= 1) {
    int x = ksm(type == 1 ? 3 : 332748118, (998244353 - 1) / (i << 1));
    for (int j = 0; j < lim; j += (i << 1))
      for (int k = 0, y = 1; k < i; k++, y = 1ll * x * y % 998244353) {
        int p = a[j + k], q = 1ll * a[j + i + k] * y % 998244353;
        a[j + k] = (p + q) % 998244353;
        a[j + k + i] = (p + 998244353 - q) % 998244353;
      }
  }
  if (type == -1) {
    int x = ksm(lim, 998244353 - 2);
    for (int i = 0; i < lim; i++) a[i] = 1ll * a[i] * x % 998244353;
  }
}
void solve(int len, int *a) {
  if (len == 1) {
    a[1] = 1;
    return;
  }
  solve(len >> 1, a);
  int x = len >> 1;
  for (lim = 1, l = 0; lim <= len; lim <<= 1, l++)
    ;
  for (int i = 1; i < lim; i++)
    rev[i] = (rev[i >> 1] >> 1) | ((i & 1) << (l - 1));
  for (int i = 0; i <= x; i++) b[i] = 1ll * a[i] * fac[i] % 998244353;
  for (int i = 0; i <= x; i++) c[i] = 1ll * ifac[i] * ksm(x, i) % 998244353;
  reverse(c, c + x + 1);
  ntt(b, 1);
  ntt(c, 1);
  for (int i = 0; i < lim; i++) b[i] = 1ll * b[i] * c[i] % 998244353;
  ntt(b, -1);
  for (int i = 0; i <= x; i++) b[i] = 1ll * b[i + x] * ifac[i] % 998244353;
  for (int i = x + 1; i < lim; i++) b[i] = 0;
  ntt(a, 1);
  ntt(b, 1);
  for (int i = 0; i < lim; i++) a[i] = 1ll * a[i] * b[i] % 998244353;
  ntt(a, -1);
  if (len & 1)
    for (int i = len; i >= 1; i--)
      a[i] = (a[i - 1] + 1ll * a[i] * (len - 1) % 998244353) % 998244353;
  for (int i = len + 1; i < lim; i++) b[i] = 0, c[i] = 0, a[i] = 0;
  return;
}
int C(int u, int v) {
  return 1ll * fac[u] * ifac[v] % 998244353 * ifac[u - v] % 998244353;
}
int main() {
  cin >> n >> A >> B;
  fac[0] = 1;
  ifac[0] = 1;
  inv[0] = 1;
  for (int i = 1; i < 400001; i++) {
    inv[i] = (i == 1) ? 1
                      : 1ll * inv[998244353 % i] * (998244353 - 998244353 / i) %
                            998244353;
    fac[i] = 1ll * fac[i - 1] * i % 998244353;
    ifac[i] = 1ll * ifac[i - 1] * inv[i] % 998244353;
  }
  if (n == 1) {
    if (B == 1 && A == 1)
      cout << 1 << endl;
    else
      cout << 0 << endl;
  } else {
    solve(n - 1, a);
    cout << 1ll * a[A + B - 2] * C(A + B - 2, A - 1) % 998244353;
  }
}
