#include #define rep(i,a,b) for(int i = (a); i < (b); i++) #define all(A) (A).begin(),(A).end() #define MOD 1000000007 using namespace std; using ll = long long; using Graph = vector>; int main() { int n,m,s,g; cin >> n >> m >> s >> g; s--; g--; Graph G(n); rep(i,0,m){ int a,b; cin >> a >> b; a--; b--; G[a].push_back(b); G[b].push_back(a); } vector seen(n,0); int u; cin >> u; rep(i,0,u){ int c; cin >> c; c--; seen[c] = 1; } queue Q; Q.push(s); seen[s] = 1; while(Q.size()){ int state = Q.front(); Q.pop(); for(int ss : G[state]){ if(seen[ss]) continue; Q.push(ss); seen[ss] = 1; } } cout << (seen[g] ? "Yes" : "No"); }