import heapq import sys input = sys.stdin.readline N, M, K = map(int, input().split()) A = list(map(int, input().split())) G = [[] for _ in range(N)] for _ in range(M): u, v = map(int, input().split()) u-=1 v-=1 heapq.heappush(G[u], (A[v], v)) heapq.heappush(G[v], (A[u], u)) dp = [] for i, a in enumerate(A): heapq.heappush(dp, (a, i)) while len(dp)>1: a, i = heapq.heappop(dp) s, j = heapq.heappop(G[i]) if s-a>K: print("No") exit() heapq.heappop(G[j]) if len(G[i])