n, m = map(int, input().split()) s, g = map(int, input().split()) s -= 1 g -= 1 edges = [[] for _ in range(n)] for _ in range(m): f, t = map(int, input().split()) f -= 1 t -= 1 edges[f].append(t) edges[t].append(f) u = int(input()) ng = set(map(int, input().split())) ok = [False] * n ok[s] = True stack = [s] while stack: pos = stack.pop() for npos in edges[pos]: if ok[npos] or npos in ng: continue ok[npos] = True stack.append(npos) if ok[g]: print("Yes") else: print("No")