import heapq from collections import deque from sys import stdin N,M,S,T = map(int,stdin.readline().split()) S -= 1 T -= 1 p = list(map(int,stdin.readline().split())) lis = [ [] for i in range(N) ] for i in range(M): a,b = map(int,stdin.readline().split()) a -= 1 b -= 1 lis[a].append(b) lis[b].append(a) X = p[S] Y = 0 q = [(-1*p[S],S)] inlis = [False] * N inlis[S] = 0 while q: np,v = heapq.heappop(q) np *= -1 if X > np: X = np Y += 1 for nex in lis[v]: if not inlis[nex]: inlis[nex] = True heapq.heappush(q,(-1*p[nex],nex)) print (Y)