#include #include #include using namespace std; using i64 = long long; using u64 = unsigned long long; using i32 = int; using u32 = unsigned int; #define rep(i,n) for(int i=0; i<(n); i++) int N, M; int S, G; vector> E; vector enabled; int main() { cin >> N >> M; cin >> S >> G; S--; G--; E.resize(M); rep(i,M){ int u,v; cin >> u >> v; u--; v--; E[u].push_back(v); E[v].push_back(u); } enabled.assign(N,1); int U; cin >> U; rep(i,U){ int a; cin >> a; enabled[a-1] = 0; } vector reach(N, 0); vector I = {0}; rep(i,I.size()){ int p = I[i]; for(int e : E[p]) if(reach[e] == 0) if(enabled[e]){ reach[e] = 1; I.push_back(e); } } if(reach[G] == 0) cout << "No\n"; else cout << "Yes\n"; return 0; } struct ios_do_not_sync{ ios_do_not_sync(){ std::ios::sync_with_stdio(false); std::cin.tie(nullptr); } } ios_do_not_sync_instance;