#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
const int mod=998244353;
inline void add(int &x,int y){(x+=y)>=mod?x-=mod:0;}
inline int kpow(int a,int b)
{
	int s=1;
	for(;b;b>>=1,a=1ll*a*a%mod)
		if(b&1)s=1ll*s*a%mod;
	return s;
}
int n,m,ans,jc[2000010],jcv[2000010];
void init()
{
	jc[0]=1;
	for(int i=1;i<=2000000;++i)jc[i]=1ll*jc[i-1]*i%mod;
	jcv[2000000]=kpow(jc[2000000],mod-2);
	for(int i=2000000;i;--i)jcv[i-1]=1ll*jcv[i]*i%mod;
}
int C(int x,int y)
{
	if(x<y||y<0)return 0;
	return 1ll*jc[x]*jcv[y]%mod*jcv[x-y]%mod;
}
int calc(int a,int b,int s)
{
	int res=C(a+b+s-1,a+b-1);
	add(res,mod-1ll*b*C(a+b+s-2-m,a+b-1)%mod);
	add(res,mod-1ll*a*C(a+b+s-1-m,a+b-1)%mod);
	return res;
}
int main()
{
	scanf("%d %d",&n,&m);
	init();
	for(int i=m;i>=0;i-=2)add(ans,1ll*C(n,i)*calc(i,n-i,(3*m-i)/2)%mod)/*,printf("%d\n",ans)*/;
	printf("%d",ans);
	return 0;
}
