local n, m = io.read("*n", "*n") local s, g = io.read("*n", "*n") local edge, av, len = {}, {}, {} for i = 1, n do edge[i] = {} av[i] = true len[i] = false end for i = 1, m do local a, b = io.read("*n", "*n") table.insert(edge[a], b) table.insert(edge[b], a) end local u = io.read("*n") for i = 1, u do local z = io.read("*n") av[z] = false end len[s] = true local done = 0 local tasks = {s} while done < #tasks do done = done + 1 local src = tasks[done] for j = 1, #edge[src] do local dst = edge[src][j] if av[dst] and not len[dst] then len[dst] = true table.insert(tasks, dst) end end end print(len[g] and "Yes" or "No")