from collections import defaultdict def rec(G, As, key, K, seen): if key in seen: return seen.add(key) for k in G[key]: if As[key] - As[k] <= K: rec(G, As, k, K, seen) N, M, K = map(int, input().split()) As = list(map(int, input().split())) sort_members = sorted(list(range), key = lambda x : -As[x]) seen = [False]*N G = defaultdict(set) for i in range(M): u, v = map(int, input().split()) G[u].add(v) G[v].add(u) seen = set() for m in sort_members: rec(G, As, m, K, seen) if len(seen) == N: print("Yes") else: print("No") As.sort()