import sys input = lambda :sys.stdin.readline()[:-1] ni = lambda :int(input()) na = lambda :list(map(int,input().split())) yes = lambda :print("yes");Yes = lambda :print("Yes");YES = lambda : print("YES") no = lambda :print("no");No = lambda :print("No");NO = lambda : print("NO") ####################################################################### n, k, m, p = na() g = [[]for i in range(n)] inf = float("inf") for _ in range(m): u,v = na() u-=1 v-=1 g[u].append(v) g[v].append(u) s = [ni() for i in range(n)] x = [ni()-1 for i in range(k)] from heapq import * hq = [] # 検疫されたか f = [-1] * n # いつ感染したか d = [inf] * n for i in range(k): heappush(hq, (s[x[i]], x[i])) d[x[i]] = 0 ans = 0 while hq: #print(hq,f,d) t, v = heappop(hq) if f[v] != -1 and f[v] < t: continue for u in g[v]: if d[u] == inf: d[u] = t heappush(hq, (t+s[u], u)) elif t - d[u] < p and f[u] == -1: f[u] = t ans += 1 print(ans)