N, M = list(map(int, input().split()))

h_list = list(map(int, input().split()))



# 隣接展望台の高さで最大のものをセット

max_h_map = dict()

for _ in range(M):

    src, dst = list(map(int, input().split()))

    max_h_map[src] = max(max_h_map.get(src, 0), h_list[dst - 1])

    max_h_map[dst] = max(max_h_map.get(dst, 0), h_list[src - 1])



good_cnt = 0

for i in range(N):

    h = h_list[i]

    max_h = max_h_map.get(i + 1, 0)

    if h > max_h:

        good_cnt += 1



print(good_cnt)
N, M = list(map(int, input().split()))

h_list = list(map(int, input().split()))



# 隣接する展望台より低い時点でbad

bad_set = set()

for _ in range(M):

    src, dst = list(map(int, input().split()))

    src_h = h_list[src - 1]

    dst_h = h_list[dst - 1]

    if src_h < dst_h:

        bad_set.add(src)

    elif dst_h < src_h:

        bad_set.add(dst)

    else:

        bad_set.add(src)

        bad_set.add(dst)



print((N - len(bad_set)))
N, M = list(map(int, input().split()))
h_list = list(map(int, input().split()))
# 隣接展望台の高さで最大のものをセット
max_h_map = dict()
for _ in range(M):
    src, dst = list(map(int, input().split()))
    max_h_map[src] = max(max_h_map.get(src, 0), h_list[dst - 1])
    max_h_map[dst] = max(max_h_map.get(dst, 0), h_list[src - 1])
good_cnt = 0
for i in range(N):
    h = h_list[i]
    max_h = max_h_map.get(i + 1, 0)
    if h > max_h:
        good_cnt += 1
print(good_cnt)

N, M = list(map(int, input().split()))
h_list = list(map(int, input().split()))
# 隣接する展望台より低い時点でbad
bad_set = set()
for _ in range(M):
    src, dst = list(map(int, input().split()))
    src_h = h_list[src - 1]
    dst_h = h_list[dst - 1]
    if src_h < dst_h:
        bad_set.add(src)
    elif dst_h < src_h:
        bad_set.add(dst)
    else:
        bad_set.add(src)
        bad_set.add(dst)
print((N - len(bad_set)))

-# 隣接展望台の高さで最大のものをセット -max_h_map = dict() +# 隣接する展望台より低い時点でbad +bad_set = set() -    max_h_map[src] = max(max_h_map.get(src, 0), h_list[dst - 1]) -    max_h_map[dst] = max(max_h_map.get(dst, 0), h_list[src - 1]) -good_cnt = 0 -for i in range(N): -    h = h_list[i] -    max_h = max_h_map.get(i + 1, 0) -    if h > max_h: -        good_cnt += 1 -print(good_cnt) +    src_h = h_list[src - 1] +    dst_h = h_list[dst - 1] +    if src_h < dst_h: +        bad_set.add(src) +    elif dst_h < src_h: +        bad_set.add(dst) +    else: +        bad_set.add(src) +        bad_set.add(dst) +print((N - len(bad_set)))