#include <iostream>
using namespace std;
#include<bits/stdc++.h>
//graph bfs
int main() {
// your code goes here
int n ; int m ;
cin>>n>>m;
vector<vector<int>>adj(n+1);
vector<bool>vis(n+1,false);
int level[n+1];
for(int i = 0 ; i < m ; i++){
int u ; int v ;
cin>>u>>v;
adj[u].push_back(v);
adj[v].push_back(u);
}
queue<int>q;
int src = 2 ;
q.push(2);
vis[src]=true;
level[src]=0;
while(!q.empty()){
int curr = q.front();
q.pop();
cout<<curr<<" level is "<<level[curr]<<endl;
for(auto adjacent : adj[curr]){
if(!vis[adjacent]){
vis[adjacent]= true;
q.push(adjacent);
level[adjacent]=level[curr]+1;
}
}
}
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwojaW5jbHVkZTxiaXRzL3N0ZGMrKy5oPgovL2dyYXBoIGJmcwppbnQgbWFpbigpIHsKCS8vIHlvdXIgY29kZSBnb2VzIGhlcmUKCWludCBuIDsgaW50IG0gOyAKCWNpbj4+bj4+bTsKCXZlY3Rvcjx2ZWN0b3I8aW50Pj5hZGoobisxKTsKICAgIHZlY3Rvcjxib29sPnZpcyhuKzEsZmFsc2UpOwogICAgaW50IGxldmVsW24rMV07Cglmb3IoaW50IGkgPSAwIDsgaSA8IG0gOyBpKyspewoJCWludCB1IDsgaW50IHYgOyAKCQljaW4+PnU+PnY7IAoJCWFkalt1XS5wdXNoX2JhY2sodik7CgkJYWRqW3ZdLnB1c2hfYmFjayh1KTsKCX0KCXF1ZXVlPGludD5xOwoJaW50IHNyYyA9IDIgOwogICAgcS5wdXNoKDIpOwogICAgdmlzW3NyY109dHJ1ZTsKICAgIGxldmVsW3NyY109MDsKCXdoaWxlKCFxLmVtcHR5KCkpewoJCWludCBjdXJyID0gcS5mcm9udCgpOwoJCXEucG9wKCk7CgkJY291dDw8Y3Vycjw8IiBsZXZlbCBpcyAiPDxsZXZlbFtjdXJyXTw8ZW5kbDsKCQlmb3IoYXV0byBhZGphY2VudCA6IGFkaltjdXJyXSl7CgkJCWlmKCF2aXNbYWRqYWNlbnRdKXsKCQkJCXZpc1thZGphY2VudF09IHRydWU7CgkJCQlxLnB1c2goYWRqYWNlbnQpOwoJCQkJbGV2ZWxbYWRqYWNlbnRdPWxldmVsW2N1cnJdKzE7CgkJCX0KCQl9CgkJCgl9CgkKCQoJCglyZXR1cm4gMDsKfQ==