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(): Q = [0] A[0] = 0 while Q: x = Q.pop() a = A[x] for z,y in E[x]: if A[z] == -1: A[z] = x ^ y Q.append(z) else: if A[z] != A[x] ^ y: print(-1) exit() dfs() for a in A: if a == -1: print(0) else: print(a)