#pragma once
vector<pair<int,int>>bfs_restore(vector<vector<int>>&g,intst=0){vector<pair<int,int>>d(g.size(),make_pair(-1,-1));d[st]=make_pair(0,-1);queue<int>Q;Q.push(st);while(!Q.empty()){intcur=Q.front();Q.pop();intcd=d[cur].first;for(auto&&dst:g[cur]){if(d[dst].first==-1){d[dst].first=cd+1;d[dst].second=cur;Q.push(dst);}}}returnd;}