#include <bits/stdc++.h>
using namespace std;
template<class t> inline t read(t &x){
    x=0;char c=getchar();bool f=0;
    while(!isdigit(c)) f|=c=='-',c=getchar();
    while(isdigit(c)) x=(x<<1)+(x<<3)+(c^48),c=getchar();
    if(f) x=-x;return  x;
}
template<class t> inline void write(t x){
    if(x<0){putchar('-'),write(-x);}
    else{if(x>9)write(x/10);putchar('0'+x%10);}
}

#define int long long

const int mod=998244353,N=2e7+5;
int n,a,b,ans,fac[N],inv[N];

int fpow(int x,int y){
    int res=1;
    for(;y;y>>=1,x=x*x%mod) if(y&1) res=res*x%mod;
    return res;
}

int C(int n,int m){
    if(m<0||n<m) return 0;
    return fac[n]*inv[m]%mod*inv[n-m]%mod;
}

int calc(int x,int y){
    if(y<=x-1) return 0;
    return (C(x+y,x)-C(x+y,x-1)+mod)%mod;
}

signed main(){
    read(n);read(a);read(b);
    if(!b){
        write(1);
        return 0;
    }
    fac[0]=1;
    for(int i=1;i<=n+n;i++) fac[i]=fac[i-1]*i%mod;
    inv[n+n]=fpow(fac[n+n],mod-2);
    for(int i=n+n-1;i>=0;i--) inv[i]=inv[i+1]*(i+1)%mod; 
    for(int i=0;i<=n-b;i++){
        int num=calc(i,b-1);
        if(i+b==n){
            if(a==i) ans=(ans+num)%mod;
        }
        else{
            int x=n-b-i-1,y=a-i;
            ans=(ans+num*C(x+y,y)%mod)%mod;
        }
    }
    write(ans);
}