from sys import stdin input=lambda :stdin.readline()[:-1] n,q=map(int,input().split()) edge=[[] for i in range(n)] for _ in range(q): a,b,c=map(int,input().split()) a-=1 b-=1 edge[a].append((b,c)) edge[b].append((a,c)) seen=[-1]*n mod=998244353 ans=1 for i in range(n): if seen[i]!=-1: continue seen[i]=0 todo=[i] while todo: v=todo.pop() for u,c in edge[v]: if seen[u]==-1: seen[u]=seen[v]^c todo.append(u) elif seen[v]^c!=seen[u]: print(0) exit() ans*=2 ans%=mod print(ans%mod)