#include <bits/stdc++.h>
using std::vector;
const int mu = 998244353, inv3 = (mu + 1) / 3, N = 400005;
int a[N], b[N], limit, l, r[N], n, p[N], A, B, inv[N];
vector<int> f[N * 4];
int ksm(int x, int y) {
  int ans = 1;
  for (; y; y >>= 1, x = x * 1ll * x % mu)
    if (y & 1) ans = ans * 1ll * x % mu;
  return ans;
}
void fft(int *a, int flag) {
  for (int i = 0; i < limit; i++)
    if (i < r[i]) std::swap(a[i], a[r[i]]);
  for (int mid = 1; mid < limit; mid <<= 1) {
    int wn = ksm(flag == 1 ? 3 : inv3, (mu - 1) / (mid << 1));
    for (int j = 0; j < limit; j += (mid << 1))
      for (int ww = 1, k = 0; k < mid; k++, ww = ww * 1ll * wn % mu) {
        int x = a[j + k], y = a[j + k + mid] * 1ll * ww % mu;
        a[j + k] = (x + y) % mu;
        a[j + k + mid] = (x - y + mu) % mu;
      }
  }
  if (flag == -1) {
    int Inv = ksm(limit, mu - 2);
    for (int i = 0; i < limit; i++) a[i] = 1ll * a[i] * Inv % mu;
  }
}
int C(int x, int y) { return 1ll * p[x] * inv[y] % mu * inv[x - y] % mu; }
void solve(int k, int L, int R) {
  if (L == R) {
    f[k].push_back(L - 1);
    f[k].push_back(1);
    return;
  }
  int mid = (L + R) >> 1;
  solve(k << 1, L, mid), solve(k << 1 | 1, mid + 1, R);
  int n = f[k << 1].size(), m = f[k << 1 | 1].size();
  for (int i = 0; i < n; i++) a[i] = f[k << 1][i];
  for (int i = 0; i < m; i++) b[i] = f[k << 1 | 1][i];
  limit = 1, l = 0;
  while (limit <= n + m) limit <<= 1, l++;
  for (int i = n; i < limit; i++) a[i] = 0;
  for (int i = m; i < limit; i++) b[i] = 0;
  for (int i = 0; i < limit; i++)
    r[i] = (r[i >> 1] >> 1) | ((i & 1) << (l - 1));
  fft(a, 1), fft(b, 1);
  for (int i = 0; i < limit; i++) a[i] = a[i] * 1ll * b[i] % mu;
  fft(a, -1);
  for (int i = 0; i < n + m; i++) f[k].push_back(a[i]);
}
int main() {
  scanf("%d%d%d", &n, &A, &B);
  if (n == 1 && A == 1 && B == 1) {
    puts("1");
    return 0;
  }
  if (A == 0 || B == 0 || n == 1 || A + B - 2 > n) {
    puts("0");
    return 0;
  }
  p[0] = 1;
  for (int i = 1; i <= n; i++) p[i] = p[i - 1] * 1ll * i % mu;
  inv[n] = ksm(p[n], mu - 2);
  for (int i = n; i >= 1; i--) inv[i - 1] = 1ll * inv[i] * i % mu;
  solve(1, 1, n - 1);
  int sum = 0;
  printf("%d\n", f[1][A + B - 2] * 1ll * C(A + B - 2, A - 1) % mu);
}
