#include<bits/stdc++.h>
#define LL long long
using namespace std;
const int P=998244353,maxn=(2e6)+5;
LL N,M,K,Fac[maxn],Inv[maxn],Ans;
LL Pow(LL a,LL b){LL s=1;for(LL w=a;b;b>>=1,w=w*w%P) if(b&1) s=s*w%P;return s;}
inline LL C(LL a,LL b){return Fac[a]*Inv[b]%P*Inv[a-b]%P;}
inline void Add(LL& x,LL y){if((x+=y)>=P) x-=P;}
inline void Dec(LL& x,LL y){if((x-=y)<0) x+=P;}
int main(){
	scanf("%d%d",&N,&M),K=N+(M<<1);
	Fac[0]=1;
	for(int i=1;i<=K;i++) Fac[i]=Fac[i-1]*i%P;
	Inv[K]=Pow(Fac[K],P-2);
	for(int i=K-1;~i;i--) Inv[i]=Inv[i+1]*(i+1)%P;
	for(int i=0,tp;i<=N&&i<=M;i++) if(!((tp=(M<<1)+M-i)&1)) Add(Ans,C(N,i)*C((tp>>1)+N-1,N-1)%P);
	LL O=0;
	for(int i=(M<<1)+1,ti=(M<<1)+M;i<=ti;i++) Add(O,C(ti-i+N-2,N-2)%P);
	Dec(Ans,N*O%P);
	printf("%lld\n",Ans);
    return 0;
}