N,M = map(int,input().split()) G = [[] for _ in range(N+1)] for _ in range(M): a,b = map(int,input().split()) y = int(input()) G[a].append((b,y)) G[b].append((a,y)) memo = [-1] * (N+1) import sys for i in range(1,N+1): if memo[i] != -1:continue memo[i] = 0 stack = [i] while stack: now = stack.pop() for v,y in G[now]: if memo[v] == -1: memo[v] = memo[now] ^ y stack.append(v) else: if memo[v] != memo[now] ^ y: print(-1) exit() for i in memo[1:]: print(i)