N,M = map(int,input().split()) S,G = map(int,input().split()) F = [0] * M T = [0] * M for i in range(M): F[i],T[i] = map(int,input().split()) U = int(input()) I = list(map(int,input().split())) s = set(I) graph = [[] for _ in range(N+1)] for i in range(M): if F[i] not in s and T[i] not in s: graph[F[i]].append(T[i]) graph[T[i]].append(F[i]) stack = [S] memo = [0] * (N+1) memo[S] = 1 while stack: now = stack.pop() for v in graph[now]: if memo[v] == 0: memo[v] = 1 stack.append(v) if memo[G] == 0: print('No') else: print('Yes')