import sys input = sys.stdin.readline N,M,mod=list(map(int,input().split())) INV=[-1]*mod INV[0]=0 for i in range(1,mod): for j in range(1,mod): if i*j%mod==1: INV[i]=j INV[j]=i X=[list(map(int,input().split())) for i in range(M)] for i in range(M): X[i][0]-=1 X[i][1]-=1 L=[[0]*(N+1) for i in range(max(N,M))] for i in range(M): a,b,c = X[i] L[i][a]+=1 L[i][b]+=1 L[i][b]%=mod L[i][N]=c for i in range(N): ind=-1 for j in range(i,M): if L[j][i]!=0: ind=j break if ind==-1: continue L[ind],L[i]=L[i],L[ind] c=L[i][i] inv=INV[c] if ind==-1: print("No") exit() for ii in range(N+1): L[ind][ii]=L[ind][ii]*inv%mod #for x in L: # print(x) #print("!",i) for j in range(M): if j==i: continue #print(j,i,L[j][i]) if L[j][i]!=0: x=L[j][i] for ii in range(N+1): L[j][ii]-=L[ind][ii]*x L[j][ii]%=mod ANS=[0]*N for i in range(len(L)): X=L[i] LIST=[] for j in range(N): if X[j]!=0: LIST.append(j) last=j if len(LIST)==0: if X[-1]!=0: print("No") exit() if LIST==[]: continue for ii in range(len(LIST)-1): ANS[LIST[ii]]=0 ANS[LIST[-1]]=X[-1] print("Yes") print(*ANS)