/* package whatever; // don't place package name! */
import java.util.*;
import java.lang.*;
import java.io.*;
/* Name of the class has to be "Main" only if the class is public. */
class Ideone
{
Scanner sc
= new Scanner
(System.
in);
int n = sc.nextInt();
int m = sc.nextInt();
List<List<Integer>> adj = new ArrayList<>();
// adjacency list
for(int i = 0; i <= n; i++) {
adj.add(new ArrayList<>());
}
// reading edges
for(int i = 0; i < m; i++) {
int u = sc.nextInt();
int v = sc.nextInt();
adj.get(u).add(v);
adj.get(v).add(u);
}
boolean visited[] = new boolean[adj.size()];
int []parent = new int[adj.size()];
int lvl[] = new int[adj.size()];
lvl[1] = 0;
dfs(1,adj,visited,parent,lvl);
}
public static void dfs(int node,List<List<Integer>> adj,boolean []visited,int []parent,int []lvl ){
visited[node] = true;
for(int x : adj.get(node)){
if(!visited[x]){
lvl[x] = lvl[node]+1;
parent[x] = node;
dfs(x,adj,visited,parent,lvl);
}
}
}
}
LyogcGFja2FnZSB3aGF0ZXZlcjsgLy8gZG9uJ3QgcGxhY2UgcGFja2FnZSBuYW1lISAqLwoKaW1wb3J0IGphdmEudXRpbC4qOwppbXBvcnQgamF2YS5sYW5nLio7CmltcG9ydCBqYXZhLmlvLio7CgovKiBOYW1lIG9mIHRoZSBjbGFzcyBoYXMgdG8gYmUgIk1haW4iIG9ubHkgaWYgdGhlIGNsYXNzIGlzIHB1YmxpYy4gKi8KY2xhc3MgSWRlb25lCnsKCSBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmdbXSBhcmdzKSB0aHJvd3MgRXhjZXB0aW9uIHsKCiAgICAgICAgU2Nhbm5lciBzYyA9IG5ldyBTY2FubmVyKFN5c3RlbS5pbik7CgogICAgICAgIGludCBuID0gc2MubmV4dEludCgpOwogICAgICAgIGludCBtID0gc2MubmV4dEludCgpOwoKICAgICAgICBMaXN0PExpc3Q8SW50ZWdlcj4+IGFkaiA9IG5ldyBBcnJheUxpc3Q8PigpOwoKICAgICAgICAvLyBhZGphY2VuY3kgbGlzdAogICAgICAgIGZvcihpbnQgaSA9IDA7IGkgPD0gbjsgaSsrKSB7CiAgICAgICAgICAgIGFkai5hZGQobmV3IEFycmF5TGlzdDw+KCkpOwogICAgICAgIH0KCiAgICAgICAgLy8gcmVhZGluZyBlZGdlcwogICAgICAgIGZvcihpbnQgaSA9IDA7IGkgPCBtOyBpKyspIHsKCiAgICAgICAgICAgIGludCB1ID0gc2MubmV4dEludCgpOwogICAgICAgICAgICBpbnQgdiA9IHNjLm5leHRJbnQoKTsKCiAgICAgICAgICAgIGFkai5nZXQodSkuYWRkKHYpOwogICAgICAgICAgICBhZGouZ2V0KHYpLmFkZCh1KTsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgYm9vbGVhbiB2aXNpdGVkW10gPSBuZXcgYm9vbGVhblthZGouc2l6ZSgpXTsKICAgICAgICBpbnQgW11wYXJlbnQgPSBuZXcgaW50W2Fkai5zaXplKCldOwogICAgICAgIGludCBsdmxbXSA9IG5ldyBpbnRbYWRqLnNpemUoKV07CgkJbHZsWzFdID0gMDsKICAgIAlkZnMoMSxhZGosdmlzaXRlZCxwYXJlbnQsbHZsKTsKICAgIAlTeXN0ZW0ub3V0LnByaW50bG4oQXJyYXlzLnRvU3RyaW5nKGx2bCkpOwogICAgfQogICAgCiAgICBwdWJsaWMgc3RhdGljIHZvaWQgZGZzKGludCBub2RlLExpc3Q8TGlzdDxJbnRlZ2VyPj4gYWRqLGJvb2xlYW4gW112aXNpdGVkLGludCBbXXBhcmVudCxpbnQgW11sdmwgKXsKICAgIAlTeXN0ZW0ub3V0LnByaW50bG4obm9kZSk7CiAgICAJdmlzaXRlZFtub2RlXSA9IHRydWU7CiAgICAJCiAgICAJZm9yKGludCB4IDogYWRqLmdldChub2RlKSl7CiAgICAJCWlmKCF2aXNpdGVkW3hdKXsKICAgIAkJCWx2bFt4XSA9IGx2bFtub2RlXSsxOwogICAgCQkJcGFyZW50W3hdID0gbm9kZTsKICAgIAkJCWRmcyh4LGFkaix2aXNpdGVkLHBhcmVudCxsdmwpOwogICAgCQl9CiAgICAJfQogICAgCQogICAgCQogICAgfQoJCn0=