from collections import deque MOD = 998244353 N, Q = map(int, input().split()) ABC = [list(map(int, input().split())) for _ in range(Q)] E = [[] for _ in range(N)] for a, b, c in ABC: E[a - 1].append((b - 1, c)) E[b - 1].append((a - 1, c)) C = [-1] * N def bfs(x): q = deque([x]) while q: x = q.popleft() for y, c in E[x]: if C[y] == -1: C[y] = C[x] ^ c q.append(y) else: if C[y] != C[x] ^ c: print(0) exit() cnt = 0 for i in range(N): if C[i] == -1: C[i] = 0 cnt += 1 bfs(i) print(pow(2, cnt, MOD))