ll vis[maxn],in[maxn],out[maxn],dis[maxn]; vector<ll> adj[maxn] ; queue<ll> q ; void bfs(ll u) { q.push(u); vis[u]=1; dis[u]=0; while(!q.empty()) { ll qfront = q.front(); q.pop(); cout<<qfront<<" "<<dis[qfront]<<"\n"; for(auto v:adj[qfront]) { if(!vis[v]) { vis[v]=1; dis[v]=dis[qfront]+1; q.push(v); } } } }