import heapq N,M,X = map(int,input().split()) G = {i:[] for i in range(1,N+1)} for _ in range(M): u,v,c,t = map(int,input().split()) G[u].append((v,c,t)) G[v].append((u,c,t)) INFTY = 10**12 dist = [INFTY]*(N+1) visit = [0]*(N+1) que = [(0,1,0)] dist[1] = 0 while que: t,v,c = heapq.heappop(que) if t>dist[v]:continue visit[v] = 1 for u,dc,dt in G[v]: if visit[u]==1:continue if c>=dc: nc = c-dc nt = t+dt if nt