#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #define popcount __builtin_popcount using namespace std; typedef long long int ll; typedef pair P; int main() { int n, m, p; cin>>n>>m>>p; int s, t; cin>>s>>t; s--; t--; vector g[100010]; for(int i=0; i>u>>v; u--; v--; g[u].push_back(v); g[v].push_back(u); } queue

que; int d[2][100010]; int dr[2][100010]; const int INF=1e9+7; for(int i=0; id[q][x]+1){ d[q^1][y]=d[q][x]+1; que.push({y, q^1}); } } } que.push({t, 0}); dr[0][t]=0; while(!que.empty()){ P p=que.front(); que.pop(); int x=p.first, q=p.second; for(auto y:g[x]){ if(dr[q^1][y]>dr[q][x]+1){ dr[q^1][y]=dr[q][x]+1; que.push({y, q^1}); } } } vector ans; for(int i=0; i