n,m,p,Y=map(int,input().split()) e=[[] for i in range(n)] for i in range(m): a,b,c=map(int,input().split()) a-=1 b-=1 e[a]+=[(b,c)] e[b]+=[(a,c)] X=10**20 h=[X]*n for i in range(p): u,v=map(int,input().split()) u-=1 h[u]=v from heapq import heappush,heappop v=[X]*n s=0 v[s]=0 q=[(v[s],s)] while len(q)>0: sc,sp=heappop(q) if sc>v[sp]: continue for tp,tc in e[sp]: if v[tp]>sc+tc: v[tp]=sc+tc heappush(q,(v[tp],tp)) ans=0 for i in range(n): ans=max(ans,(Y-v[i])//h[i]) print(ans)