import sys from collections import deque def main(): n, m, k = map(int, sys.stdin.readline().split()) friends = list(map(int, sys.stdin.readline().split())) adj = [[] for _ in range(n + 1)] for _ in range(m): u, v = map(int, sys.stdin.readline().split()) adj[u].append(v) adj[v].append(u) all_reachable = [] for x in friends: reachable = [set() for _ in range(n)] start = x initial_mask = 1 << (start - 1) visited = set() queue = deque() queue.append((start, initial_mask)) visited.add((start, initial_mask)) t0 = (initial_mask.bit_count() - 1) reachable[t0].add(start) while queue: u, mask = queue.popleft() current_t = mask.bit_count() - 1 for v in adj[u]: if not (mask & (1 << (v - 1))): new_mask = mask | (1 << (v - 1)) new_t = new_mask.bit_count() - 1 if (v, new_mask) not in visited: visited.add((v, new_mask)) reachable[new_t].add(v) queue.append((v, new_mask)) all_reachable.append(reachable) max_t = n - 1 for t in range(max_t + 1): common = None possible = True for i in range(k): if not all_reachable[i][t]: possible = False break if common is None: common = all_reachable[i][t].copy() else: common.intersection_update(all_reachable[i][t]) if not common: possible = False break if possible and common: print("Yes") return print("No") if __name__ == "__main__": main()