#include <bits/stdc++.h>
using namespace std;
#define int long long
int n,m,fac[20000005]={1},inv[20000005]={1},a[20000005]={1},mod=998244353,ans;
int qpow(int x,int y)
{
int ret=1;
for(;y;y>>=1,x=x*x%mod)
{
if(y&1)
ret=ret*x%mod;
}
return ret;
}
int C(int x,int y)
{
if(x<y) return 0;
return fac[x]*inv[y]%mod*inv[x-y]%mod;
}
signed main()
{
for(int i=1;i<=20000000;i++)
{
fac[i]=fac[i-1]*i%mod;
inv[i]=inv[i-1]*qpow(i,mod-2)%mod;
}
scanf("%lld%lld",&n,&m);
for(int i=1;i<=m;i++)
{
a[i]=(a[i-1]+C(n+i-1,n-1))%mod;
}
for(int i=0;i<=2;i++)
{
for(int j=0;j<=min(m-n-i+1,n-1);j++)
{
ans=(ans+C(n-1,i)*a[(m-n-i-j+1)/3])%mod;
}
}
printf("%lld",ans);
}