N,M = map(int,input().split()) AB = [] Y = [] E = [[] for _ in range(N)] A = [-1] * N for _ in range(M): a,b = map(int,input().split()) y = int(input()) a -= 1 b -= 1 E[a].append((b,y)) E[b].append((a,y)) def dfs(x): Q = [x] while Q: x = Q.pop() a = A[x] for z,y in E[x]: if A[z] == -1: A[z] = a ^ y Q.append(z) else: if A[z] != a ^ y: print(-1) exit() for i in range(N): if A[i] == -1: A[i] = 0 dfs(i) for a in A: print(a)