#include #include using namespace std; using ll = long long; int main() { // s-t みたいな時、Kが奇数なら行き来するだけでいい?? // K=2nかつs, t が孤立してる時だけ無理? ll N, M, K, s, t; cin >> N >> M >> K >> s >> t; vector U(M), V(M); unordered_set ss, ts; vector E(N, vector()); s--; t--; for (int i=0;i> U[i] >> V[i]; U[i]--; V[i]--; E[U[i]].push_back(V[i]); E[V[i]].push_back(U[i]); if (U[i]==s) ss.insert(V[i]); if (V[i]==s) ss.insert(U[i]); if (U[i]==t) ts.insert(V[i]); if (V[i]==t) ts.insert(U[i]); } // s,tにつなげた点xが奇数回ターンを潰せること bool condition_x = false; vector dist(N,1e9); for (int i=0;i q; q.push(i); dist[i] = 0; while(!q.empty()) { int c = q.front(); q.pop(); for (int nx: E[c]) { ll cost = (ll)dist[c] + 1L; if (nx==i && cost