#include #include #include #include using namespace std; using pii = pair; using Graph = vector>; Graph G(200010); int D[200010][2]; void bfs(int src){ fill(&D[0][0], &D[0][0]+200010*2, -1); D[src][0]=0; queue Q; Q.push({src, 0}); while(! Q.empty()){ auto [cur, eq] = Q.front(); Q.pop(); for (auto [dst, fm]: G[cur]){ if (eq==1 && fm==1) continue; if (D[dst][eq+fm]!=-1) continue; D[dst][eq+fm]=D[cur][eq]+1; Q.push({dst, eq+fm}); } } return; } void solve(){ ios::sync_with_stdio(false); cin.tie(nullptr); int N, M; scanf("%d %d", &N, &M); for (int i=1;i<=N;i++) G[i].clear(); for (int i=0;i