import sys sys.setrecursionlimit(100050) 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 dfs(x): for y, c in E[x]: if C[y] == -1: C[y] = C[x] ^ c dfs(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 dfs(i) print(pow(2, cnt, MOD))