from heapq import* n,m,p,y=map(int,input().split()) abc=[[*map(int,input().split())]for _ in range(m)] de=[[*map(int,input().split())]for _ in range(p)] g=[[]for _ in range(n)] for a,b,c in abc: g[a-1]+=(b-1,c), g[b-1]+=(a-1,c), INF=1<<60 h=[INF]*n for d,e in de: h[d-1]=e q=[(-y,0)] s=[INF]*n s[0]=-y ans=0 while q: c,p=heappop(q) if s[p]<c: continue ans=max(ans,-c//h[p]) for v,nc in g[p]: if s[v]>s[p]+nc: s[v]=s[p]+nc heappush(q,(s[v],v)) print(ans)