// ※※※ 解答不能 ※※※
// si_nian氏
// https://atcoder.jp/contests/agc040/submissions/8288235
#include <bits/stdc++.h>
using namespace std;
const int MAX = 10000000;
int N, a, b, ans;
int fac[MAX + 1], inv[MAX + 1];
const int MOD = 998244353;
int Pow(int x, int y){
    int ans = 1;
    for(; y; y >>= 1, x = 1ll * x * x % MOD) if(y & 1) ans = 1ll * ans * x % MOD;
    return ans;
}
void Pre(){
    fac[0] = 1;
    for(int i = 1; i <= MAX; i++) fac[i] = 1ll * fac[i - 1] * i % MOD;
    inv[MAX] = Pow(fac[MAX], MOD - 2);
    for(int i = MAX - 1; i >= 0; i--) inv[i] = 1ll * inv[i + 1] * (i + 1) % MOD;
}
int C(int n, int r){
    return 1ll * fac[n] * inv[r] % MOD * inv[n - r] % MOD;
}
int catalan(int x, int y){
    return((C(x + y, y) - C(x + y, y - 1)) + MOD) % MOD;
}

int main(){
    Pre();
    scanf("%d %d %d", &N, &a, &b);
    if(b == 0){
        printf("%d\n", 1);
        return 0;
    }
    for(int i = 0; i <= min(min(a, N - b), b - 1); i++){
        int tot = catalan(b - 1, i);
        if(i + b == N){
            if(a == i) (ans += tot) %= MOD;
        }else{
            int x = N - b - i - 1;
            int y = b - i - (b - a) + 1;
            (ans += 1ll * tot * C(x + y - 1, x) % MOD) %= MOD;
        }
    }
    printf("%d\n", ans);
    return 0;
}