from collections import deque n,m=map(int,input().split()) s,g=map(int,input().split()) G=[[] for i in range(n)] for i in range(m): a,b=map(int,input().split()) G[a-1].append(b-1) G[b-1].append(a-1) u=input() A=list(map(int,input().split())) seen=[False]*n deq=deque([]) deq.append(s-1) seen[s-1]=True for x in A: seen[x-1]="NG" while len(deq): v=deq.popleft() for v2 in G[v]: if seen[v2] or seen[v2]=="NG": continue deq.append(v2) seen[v2]=True if seen[g-1]: print("Yes") else: print("No")