N,M=map(int,input().split()) G=[[(0,0) for j in range(0)] for i in range(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)) ans=[-1]*N for i in range(N): if ans[i]!=-1: continue ans[i]=0 order=[i]*1 ind=0 while ind!=len(order): a=order[ind] for x in G[a]: if ans[x[0]]==-1: ans[x[0]]=(ans[a]^x[1]) order.append(x[0]) elif ans[x[0]]!=(ans[a]^x[1]): print(-1) exit() ind+=1 for i in range(N): print(ans[i])