from collections import deque import heapq n,m,p,y=map(int,input().split()) edge=[list(map(int,input().split())) for _ in range(m)] shop=[list(map(int,input().split())) for _ in range(p)] E=[[] for _ in range(n+1)] for a,b,c in edge: E[a].append([b,c]) E[b].append([a,c]) ds=dict() for d,e in shop: ds[d]=e D=[0]*(n+1) D[1]=y H=[(-y,1)] while H: y,x=heapq.heappop(H) if -y