#include <bits/stdc++.h>
using namespace std;
const int N = 4e5 + 10;
int ta[N], tb[N], r[N], f[N];
int n;
void gen(int m) {
  int l = 0;
  for (n = 1; n <= m; n <<= 1) l++;
  for (int i = 1; i < n; i++) r[i] = (r[i >> 1] >> 1) | ((i & 1) << (l - 1));
}
int qpow(int x, int y) {
  int ret = 1;
  while (y) {
    if (y & 1) ret = 1ll * ret * x % (998244353);
    x = 1ll * x * x % (998244353), y >>= 1;
  }
  return ret;
}
void dft(int x[], int d) {
  for (int i = 1; i < n; i++)
    if (i > r[i]) swap(x[i], x[r[i]]);
  int t, w, o;
  for (int i = 1; i < n; i <<= 1) {
    o = qpow(3, d * ((998244353) - 1) / (i << 1) + (998244353) - 1);
    for (int j = 0; j < n; j += (i << 1)) {
      w = 1;
      for (int k = 0; k < i; k++, w = 1ll * w * o % (998244353))
        t = 1ll * x[i + j + k] * w % (998244353),
        x[i + j + k] = (x[j + k] - t + (998244353)) % (998244353),
        (x[j + k] += t) %= (998244353);
    }
  }
}
void mul(int x[], int y[], int z[], int m) {
  gen(m << 1);
  copy(x, x + m, ta), copy(y, y + m, tb);
  fill(ta + m, ta + n, 0), fill(tb + m, tb + n, 0);
  dft(ta, 1), dft(tb, 1);
  for (int i = 0; i < n; i++) ta[i] = 1ll * ta[i] * tb[i] % (998244353);
  dft(ta, -1);
  int inv = qpow(n, (998244353) - 2);
  for (int i = 0; i < m; i++) z[i] = 1ll * ta[i] * inv % (998244353);
}
int tmp[20][N >> 2];
void solve(int dep, int l, int r) {
  if (l == r) {
    tmp[dep][0] = l, tmp[dep][1] = 1;
    return;
  }
  int mid = (l + r) >> 1;
  fill(tmp[dep + 1], tmp[dep + 1] + r - l + 5, 0);
  solve(dep + 1, l, mid);
  copy(tmp[dep + 1], tmp[dep + 1] + r - l + 5, tmp[dep]);
  fill(tmp[dep + 1], tmp[dep + 1] + r - l + 5, 0);
  solve(dep + 1, mid + 1, r);
  mul(tmp[dep + 1], tmp[dep], tmp[dep], r - l + 5);
}
int fac[N];
int main() {
  fac[0] = 1;
  for (int i = 1; i < N; i++) fac[i] = 1ll * fac[i - 1] * i % (998244353);
  ios::sync_with_stdio(false), cin.tie(0);
  int n, a, b;
  cin >> n >> a >> b;
  if (n == 1) cout << (a == 1 && b == 1) << endl, exit(0);
  if (!a || !b || a + b - 2 > n - 1) cout << 0 << endl, exit(0);
  solve(0, 0, n - 2);
  cout << 1ll * tmp[0][a + b - 2] * fac[a + b - 2] % (998244353) *
              qpow(fac[a - 1], (998244353) - 2) % (998244353) *
              qpow(fac[b - 1], (998244353) - 2) % (998244353)
       << endl;
  return 0;
}
