#include <bits/stdc++.h>
using namespace std;
const int N = 200005, Md = 998244353;
int a[18][N], n, A, B, fac[N], ifac[N], inv[N], R[N];
void pre(int n) {
  inv[1] = 1;
  fac[1] = ifac[1] = 1;
  for (int i = 2; i <= n; i++) {
    inv[i] = (Md - Md / i) * inv[Md % i] % Md;
    fac[i] = fac[i - 1] * i % Md;
    ifac[i] = ifac[i - 1] * inv[i] % Md;
  }
}
int CC(int a, int b) {
  int ans = 1;
  while (b) {
    if (b & 1) ans = 1ll * ans * a % Md;
    b >>= 1, a = 1ll * a * a % Md;
  }
  return ans;
}
void NTT(int *a, int n, int opt) {
  for (int i = 0; i < n; i++) {
    if (i < R[i]) swap(a[i], a[R[i]]);
  }
  for (int i = 1; i < n; i <<= 1) {
    int wn = CC(3, (Md - 1) / (i * 2));
    for (int j = 0; j < n; j += (i << 1)) {
      int wnk = 1;
      for (int k = 0; k < i; k++) {
        int x = a[j + k];
        int y = (1ll * wnk * a[i + j + k]) % Md;
        a[j + k] = (x + y) % Md;
        a[i + j + k] = ((x - y) % Md + Md) % Md;
        wnk = 1ll * wnk * wn % Md;
      }
    }
  }
  if (opt == -1) {
    int x = CC(n, Md - 2);
    reverse(a + 1, a + n);
    for (int i = 0; i < n; i++) a[i] = 1ll * a[i] * x % Md;
  }
}
void solve(int l, int r, int d) {
  if (l == r) {
    a[d][0] = l, a[d][1] = 1;
    return;
  }
  int mid = l + r >> 1, len = 0, now = 1;
  solve(l, mid, d + 1);
  for (int i = 0; i <= mid - l + 1; i++) a[d][i] = a[d + 1][i];
  solve(mid + 1, r, d + 1);
  while (now <= r - l + 1) now <<= 1, ++len;
  for (int i = 0; i < now; i++)
    R[i] = (R[i >> 1] >> 1) | ((i & 1) << (len - 1));
  for (int i = mid - l + 2; i < now; i++) a[d][i] = 0;
  for (int i = r - mid + 1; i < now; i++) a[d + 1][i] = 0;
  NTT(a[d], now, 1), NTT(a[d + 1], now, 1);
  for (int i = 0; i < now; i++) a[d][i] = 1ll * a[d][i] * a[d + 1][i] % Md;
  NTT(a[d], now, -1);
}
int C(int n, int m) {
  int k1 = 1, k2 = 1;
  for (int i = n - m + 1; i <= n; i++) k1 = 1ll * k1 * i % Md;
  for (int i = 1; i <= m; i++) k2 = 1ll * k2 * i % Md;
  return 1ll * k1 * CC(k2, Md - 2) % Md;
}
int main() {
  cin >> n >> A >> B;
  if (A + B - 2 > n - 1 || !A || !B) {
    cout << 0 << endl;
    return 0;
  }
  if (n == 1) {
    cout << 1 << endl;
    return 0;
  }
  pre(n);
  solve(0, n - 2, 0);
  printf("%d\n", 1ll * a[0][A + B - 2] * C(A + B - 2, B - 1) % Md);
  return 0;
}
