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)