#include<bits/stdc++.h>
using namespace std;
const long long md=998244353;
const int maxn=1000100;
long long fac[maxn],inv[maxn];
long long powd(long long x,long long y){
	long long res=1;
	while(y){
		if(y&1) res=res*x%md;
		x=x*x%md;
		y>>=1;
	}
	return res;
}
long long C(int x,int y){
	if(x<0||y<0||x<y) return 0;
	return fac[x]*inv[y]%md*inv[x-y]%md;
}
int main(){
//	freopen("E.in","r",stdin);
	int n,m;
	scanf("%d%d",&m,&n);
	fac[0]=1;
	for(int i=1;i<=n;i++)
		fac[i]=fac[i-1]*i%md;
	inv[n]=powd(fac[n],md-2);
	for(int i=n;i>=1;i--)
		inv[i-1]=inv[i]*i%md;
	int R,B;
	long long ans=0;
	for(int i=(n+1)/2;i<=n;i++){
		R=i,B=n-i;
		if(R<m) continue;
      	if(R==B) B--;
		ans=(ans+C(R+B,R))%md;
		ans=(ans-C(R+B,((R-m+1)+R))+md)%md;
	}
	printf("%lld\n",ans);
	return 0;
}