#include #include #include #include using namespace std; using ll = long long; int main(void){ ll n, m, k, s, t; cin >> n >> m >> k >> s >> t; s--, t--; if(s>t) swap(s, t); bool con=false; vector> to(n); for(int i=0; i> u >> v; u--, v--; to[u].push_back(v); to[v].push_back(u); if(u==s&&v==t) con=true; } if(k%2){ cout << "Yes" << endl; return 0; } int S=to[s].size(), T=to[t].size(); if(S){ if(S>=2||(S==1&&!con)){ cout << "Yes" << endl; return 0; } } if(T){ if(T>=2||(T==1&&!con)){ cout << "Yes" << endl; return 0; } } if(!con){ cout << "No" << endl; return 0; } vector seen(n); int mini=1e9; auto dfs=[&](auto dfs, int st, int now, int cnt, int par=-1)->void { cnt++; seen[now]=1; for(auto p:to[now])if(p!=par){ if(st==p&&cnt%2){ mini=min(mini, cnt); continue; } dfs(dfs, st, p, cnt, now); } }; for(int i=0; i=k) cout << "Yes" << endl; else cout << "No" << endl; return 0; }