def main(): n, m, k = list(map(int, input().split())) node = [[] for _ in range(n)] for _ in range(m): u, v, w = list(map(int, input().split())) node[u-1].append((v-1, w%k)) node[v-1].append((u-1, w%k)) dp = [[0 for _ in range(k)] for _ in range(n)] dp[0][0] = 1 A = [(0, 0)] while A: now, t = A.pop() for nxt, w in node[now]: nt = (t+w)%k if not dp[nxt][nt]: dp[nxt][nt] = 1 A.append((nxt, nt)) return dp[-1].index(1) print(main())