R=range def J(): return map(int,input().split()) N,Q=J() p=[i for i in R(N*2)] def r(i): m=p[i] while i!=m: p[i]=i=p[m] m=p[i] return i for i in R(Q): A,B,C=J() A-=1 B-=1 for j in R(2):p[r(A+N*j)]=r(B+N*((C+j)%2)) f=[1]*(N*2) a=1 for i in R(N): j,k=r(i),r(i+N) if f[j]:a=a*[2,0][j==k]%998244353 f[j]=f[k]=0 print(a)