from collections import deque N,M = map(int,input().split()) s,g = map(int,input().split()) A = [list(map(int,input().split())) for _ in range(M)] U = int(input()) I = set(list(map(int,input().split()))) G = {i:[] for i in range(1,N+1)} for i in range(M): a,b = A[i] if a in I or b in I:continue G[a].append(b) G[b].append(a) dist = [-1]*(N+1) dist[s] = 0 que = deque([s]) while que: x = que.popleft() for y in G[x]: if dist[y]==-1: dist[y] = dist[x]+1 que.append(y) if dist[g]==-1: print("No") else: print("Yes")