from collections import deque N, M = map(int, input().split()) G = [list() for _ in range(N)] ans = [-1]*N for i in range(M): a, b = map(int, input().split()) a -= 1 b -= 1 y = int(input()) G[a].append((b, y)) G[b].append((a, y)) for i in range(N): if ans[i] != -1: continue ans[i] = 0 que = deque([i]) while que: pos = que.popleft() for nex, xor in G[pos]: if ans[nex] == -1: ans[nex] = ans[pos]^xor que.append(nex) else: # 訪問済み if ans[nex]^ans[pos] == xor: continue else: exit(print(-1)) print(*ans, sep='\n')