import sys import heapq input = sys.stdin.buffer.readline N, M, S, T = map(int, input().split()) S -= 1 T -= 1 P = tuple(map(int, input().split())) G = [[] for _ in range(N)] for _ in range(M): a, b = (int(x) - 1 for x in input().split()) G[a].append(b) G[b].append(a) h = [(-P[S], S)] nonvisited = [True] * N nonvisited[S] = False ans = 0 X = P[S] while h: p, v = heapq.heappop(h) if -p < X: X = -p ans += 1 for x in G[v]: if nonvisited[x]: heapq.heappush(h, (-P[x], x)) nonvisited[x] = False print(ans)