import sys from collections import deque, Counter input = lambda: sys.stdin.readline().rstrip() ii = lambda: int(input()) mi = lambda: map(int, input().split()) li = lambda: list(mi()) inf = 2 ** 63 - 1 mod = 998244353 class dsu(): n=1 parent_or_size=[-1 for i in range(n)] def __init__(self,N): self.n=N self.num = N self.parent_or_size=[-1 for i in range(N)] def merge(self,a,b): assert 0<=a0: result2.append(result[i]) return result2 def count(self): return self.num n, q = mi() U = dsu(2 * n) for _ in range(q): a, b, c = mi() a -= 1; b -= 1 if c == 0: U.merge(a, b) U.merge(a + n, b + n) else: U.merge(a, n + b) U.merge(a + n, b) for i in range(n): if U.same(i, n + i): print(0) exit() ans = pow(2, len(U.groups()) // 2, mod) print(ans)