N,M=map(int,input().split()) table=[(0,0)]*0 J=0 for i in range(M): A=int(input()) D=0 tmp=list(map(int,input().split())) for j in range(A): D+=(1<<(tmp[j]-1)) Y=int(input()) for j in range(len(table)): if (D^table[j][0])<D: D^=table[j][0] Y^=table[j][1] if D!=0: table.append((D,Y)) elif Y!=0: J=1 if J==1: print(-1) exit() ans=[0]*N table.sort() for i in range(len(table)): tmp=0 ind=0 for j in range(N): if (table[i][0]&(1<<j))!=0: ind=j tmp^=ans[j] ans[ind]=(tmp^table[i][1]) #print(ind,tmp,table[i],ans) for i in range(N): print(ans[i])