import sys input = lambda :sys.stdin.readline()[:-1] ni = lambda :int(input()) na = lambda :list(map(int,input().split())) yes = lambda :print("yes");Yes = lambda :print("Yes");YES = lambda : print("YES") no = lambda :print("no");No = lambda :print("No");NO = lambda : print("NO") ####################################################################### n, m, b = na() g = [[] for i in range(n)] for _ in range(m): x, y, z = na() x -= 1 y -= 1 g[x].append((y, z)) g[y].append((x, z)) ans = [-1] * n for i in range(n): if ans[i] != -1: continue for j in range(b): ok = 1 f = [] q = [i] ans[i] = j while q: x = q.pop() f.append(x) for y, z in g[x]: if ans[y] == -1: ans[y] = (z - ans[x]) % b q.append(y) elif (ans[x] + ans[y] - z) % b: ok = 0 if ok: break for x in f: ans[x] = -1 else: No() break else: Yes() print(*ans)