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