#include using namespace std; using ll = long long; template using vec = vector; template using vvec = vector>; template using vvvec = vector>; int main(){ cin.tie(0); ios::sync_with_stdio(false); int N,M,P; cin >> N >> M >> P; int S,T; cin >> S >> T; S--; T--; vvec g(N); for(int i=0;i> a >> b; a--; b--; g[a].push_back(b); g[b].push_back(a); } int inf = 1e9+5; vvec distS(N,vec(2,inf)),distT(N,vec(2,inf)); auto bfs = [&](int s,vvec& dist)->void{ queue> Q; dist[s][0] = 0; Q.push({s,0}); while(!Q.empty()){ auto [cur,p] = Q.front(); Q.pop(); for(auto& to:g[cur]){ if(dist[to][p^1]==inf){ dist[to][p^1] = dist[cur][p]+1; Q.push({to,p^1}); } } } }; bfs(S,distS); bfs(T,distT); vec ans; for(int i=0;i