import sys int1 = lambda x: int(x) - 1 # input = lambda: sys.stdin.buffer.readline() input = lambda: sys.stdin.readline().rstrip() ii = lambda: int(input()) i1 = lambda: int1(input()) mi = lambda: map(int, input().split()) mi1 = lambda: map(int1, input().split()) li = lambda: list(mi()) li1 = lambda: list(mi1()) lli = lambda n: [li() for _ in range(n)] INF = float("inf") mod = int(1e9 + 7) # mod = 998244353 n, m = mi() s, t = mi1() g = [list() for i in range(n)] for i in range(m): a, b = mi1() g[a].append(b) g[b].append(a) exit(0) ng = [False] * n input() for i in li1(): ng[i] = True from collections import deque que = deque() que.append(s) dp = [INF] * n dp[s] = 0 while que: cur = que.popleft() for to in g[cur]: if ng[to]: continue if dp[to] > dp[cur] + 1: dp[to] = dp[cur] + 1 que.append(to) print("Yes" if not ng[s] and dp[t] != INF else "No")