ll@N,@M,@A[N],@(U--,V--)[M],a,b,s=1,m=998244353; unionFind f('m',N,1); rep(i,M)f(U[i],V[i]); rep(i,N)if(i!=f(i))A[f(i)]+=A[i]; rep(i,N)(s*=A[f(i)]%m)%=m; wt(s);