#include <bits/stdc++.h>
const int ml = 110000 + 100, mm = ml * 4, p = (7 * 17 * (1 << 23)) + 1, g = 3;
int l1, l2, n, K, ci;
long long w[mm], ni, t[mm], a[19][mm];
long long pow(int x, int n) {
  long long ans = 1, t = x;
  while (n) {
    if (n & 1) ans = ans * t % p;
    t = t * t % p;
    n >>= 1;
  }
  return ans;
}
void DFT(long long *a, bool sig) {
  int te, u;
  for (int i = 0; i <= n - 1; i++) {
    te = i;
    u = 0;
    for (int j = 0; j < ci; j++, te >>= 1) u = (u << 1) + (te & 1);
    t[u] = a[i];
  }
  int m2, bei, y1, y2;
  long long wi;
  for (int m = 2; m <= n; m <<= 1) {
    m2 = m >> 1;
    bei = n / m;
    for (int i = 0; i <= m2 - 1; i++) {
      if (sig)
        wi = w[i * bei];
      else
        wi = w[n - i * bei];
      for (int j = i; j < n; j += m) {
        y1 = t[j];
        y2 = wi * t[j + m2] % p;
        t[j] = (y1 + y2) % p;
        t[j + m2] = (y1 - y2 + p) % p;
      }
    }
  }
  for (int i = 0; i <= n - 1; i++) a[i] = t[i];
  if (!sig)
    for (int i = 0; i <= n - 1; i++) a[i] = (long long)a[i] * ni % p;
}
int N, A, B;
inline void wor(int dep, int l, int r) {
  if (l == r) {
    a[dep][0] = l;
    a[dep][1] = 1;
    return;
  }
  int mi = (l + r) >> 1;
  wor(dep + 1, l, mi);
  for (int i = 0; i <= mi - l + 1; i++) a[dep][i] = a[dep + 1][i];
  wor(dep + 1, mi + 1, r);
  for (n = 1, ci = 0; n <= r - l + 1; n <<= 1, ci++)
    ;
  K = (p - 1) / n;
  w[0] = 1;
  w[1] = pow(g, K);
  for (int i = 2; i <= n; i++) w[i] = w[i - 1] * w[1] % p;
  ni = pow(n, p - 2);
  for (int i = mi - l + 2; i <= n - 1; i++) a[dep][i] = 0;
  for (int i = r - (mi + 1) + 2; i <= n - 1; i++) a[dep + 1][i] = 0;
  DFT(a[dep], 1);
  DFT(a[dep + 1], 1);
  for (int i = 0; i <= n - 1; i++) a[dep][i] = a[dep][i] * a[dep + 1][i] % p;
  DFT(a[dep], 0);
}
inline long long S(int n, int k) {
  if (k < 0 || k > N - 1) return 0;
  wor(0, 0, N - 2);
  return a[0][k];
}
long long inv[110000];
inline long long C(int n, int m) {
  if (m < 0 || m > n) return 0;
  long long ans = 1;
  inv[0] = inv[1] = 1;
  for (int i = 2; i <= m; i++) inv[i] = (p - p / i) * inv[p % i] % p;
  for (int i = 1; i <= m; i++) ans = ans * (n - i + 1) % p * inv[i] % p;
  return ans;
}
int main() {
  scanf("%d%d%d", &N, &A, &B);
  if (N == 1) {
    if (A == 1 && B == 1)
      printf("1\n");
    else
      printf("0\n");
    return 0;
  }
  printf("%I64d\n", S(n - 1, A + B - 2) * C(A + B - 2, A - 1) % p);
  return 0;
}
