#include <cstdio>
#include <cstring>
#include <iostream>
#include <algorithm>
using namespace std;
typedef long long ll;
inline int read()
{
	int x = 0 , f = 1; char ch = getchar();
	while(ch < '0' || ch > '9')	{if(ch == '-')	f = -1; ch = getchar();}
	while(ch >= '0' && ch <= '9') {x = (x << 3) + (x << 1) + (ch ^ 48); ch = getchar();}
	return x * f;
}
const int N = 5e5 + 5 , mod = 998244353;
ll fac[N] , inv[N];
inline ll ksm(ll a,int b)
{
	ll res = 1;
	while(b)
	{
		if(b & 1) res = res * a % mod;
		a = a * a % mod; b >>= 1;
	}
	return res; 
}
inline void init(int n)
{
	fac[0] = inv[0] = 1;
	for(int i = 1;i <= n;i ++) fac[i] = fac[i - 1] * i % mod;
	inv[n] = ksm(fac[n],mod - 2);
	for(int i = n - 1;i >= 1;i --) inv[i] = inv[i + 1] * (i + 1) % mod;
}
inline int C(int n,int m) { return (n >= m && m >= 0)? fac[n] * inv[m] % mod * inv[n - m] % mod : 0;}
int main()
{
	int n = read() , m = read();
	if(m < n) return puts("0") , 0;
	init(m); int ans = 0;
	for(int R = 0;R <= m;R ++)
	{
		int B = m - R;
		if(R < B) continue;
		if(R == B) B --;
		ans = (ans + C(R + B,R) - C(R + B,R * 2 - n + 1)) % mod;
		ans = (ans + mod) % mod;
	}
	printf("%d\n",ans);
	return 0;
}