from collections import deque
n,m = map(int,input().split())
a,b = map(int,input().split())
to = [[] for _ in range(n)]
for _ in range(m):
    f,t = map(int,input().split())
    to[f-1].append(t-1)
    to[t-1].append(f-1)
    
u = int(input())
if(u != 0):
    i = list(map(int,input().split()))
    i = list(map(lambda x:x-1,i))
    i = set(i)
else:
    i = set()

visited = [False] * n
que = deque()
que.append(a-1)
visited[a-1] = True
while(que):
    c = que.popleft()
    for v in to[c]:
        if((visited[v] == False) & (v not in i)):
            visited[v] = True
            que.append(v)
            
if(visited[b-1]):
    print('Yes')
else:
    print('No')