import java.util.*;
public class Main {
public static void main
(String[] args
) { int n = 6, m = 7;
int[][] edges = {
{1, 2}, {1, 3}, {2, 4}, {2, 5}, {3, 6}, {4, 6}, {5, 6}
};
int source = 1;
List<List<Integer>> graph = new ArrayList<>();
for (int i = 0; i <= n; i++) {
graph.add(new ArrayList<>());
}
for (int[] edge : edges) {
graph.get(edge[0]).add(edge[1]);
graph.get(edge[1]).add(edge[0]);
}
Queue<Integer> queue = new LinkedList<>();
boolean[] visited = new boolean[n + 1];
int[] level = new int[n + 1];
queue.add(source);
visited[source] = true;
level[source] = 0;
while (!queue.isEmpty()) {
int node = queue.poll();
for (int neighbor : graph.get(node)) {
if (!visited[neighbor]) {
visited[neighbor] = true;
queue.add(neighbor);
level[neighbor] = level[node] + 1;
}
}
}
for (int i = 1; i <= n; i++) {
System.
out.
print(level
[i
] + " "); }
}
}
aW1wb3J0IGphdmEudXRpbC4qOwoKcHVibGljIGNsYXNzIE1haW4gewogICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykgewogICAgICAgIGludCBuID0gNiwgbSA9IDc7CiAgICAgICAgaW50W11bXSBlZGdlcyA9IHsKICAgICAgICAgICAgezEsIDJ9LCB7MSwgM30sIHsyLCA0fSwgezIsIDV9LCB7MywgNn0sIHs0LCA2fSwgezUsIDZ9CiAgICAgICAgfTsKICAgICAgICBpbnQgc291cmNlID0gMTsKCiAgICAgICAgTGlzdDxMaXN0PEludGVnZXI+PiBncmFwaCA9IG5ldyBBcnJheUxpc3Q8PigpOwogICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDw9IG47IGkrKykgewogICAgICAgICAgICBncmFwaC5hZGQobmV3IEFycmF5TGlzdDw+KCkpOwogICAgICAgIH0KCiAgICAgICAgZm9yIChpbnRbXSBlZGdlIDogZWRnZXMpIHsKICAgICAgICAgICAgZ3JhcGguZ2V0KGVkZ2VbMF0pLmFkZChlZGdlWzFdKTsKICAgICAgICAgICAgZ3JhcGguZ2V0KGVkZ2VbMV0pLmFkZChlZGdlWzBdKTsKICAgICAgICB9CgogICAgICAgIFF1ZXVlPEludGVnZXI+IHF1ZXVlID0gbmV3IExpbmtlZExpc3Q8PigpOwogICAgICAgIGJvb2xlYW5bXSB2aXNpdGVkID0gbmV3IGJvb2xlYW5bbiArIDFdOwogICAgICAgIGludFtdIGxldmVsID0gbmV3IGludFtuICsgMV07CgogICAgICAgIHF1ZXVlLmFkZChzb3VyY2UpOwogICAgICAgIHZpc2l0ZWRbc291cmNlXSA9IHRydWU7CiAgICAgICAgbGV2ZWxbc291cmNlXSA9IDA7CgogICAgICAgIHdoaWxlICghcXVldWUuaXNFbXB0eSgpKSB7CiAgICAgICAgICAgIGludCBub2RlID0gcXVldWUucG9sbCgpOwoKICAgICAgICAgICAgZm9yIChpbnQgbmVpZ2hib3IgOiBncmFwaC5nZXQobm9kZSkpIHsKICAgICAgICAgICAgICAgIGlmICghdmlzaXRlZFtuZWlnaGJvcl0pIHsKICAgICAgICAgICAgICAgICAgICB2aXNpdGVkW25laWdoYm9yXSA9IHRydWU7CiAgICAgICAgICAgICAgICAgICAgcXVldWUuYWRkKG5laWdoYm9yKTsKICAgICAgICAgICAgICAgICAgICBsZXZlbFtuZWlnaGJvcl0gPSBsZXZlbFtub2RlXSArIDE7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIGZvciAoaW50IGkgPSAxOyBpIDw9IG47IGkrKykgewogICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50KGxldmVsW2ldICsgIiAiKTsKICAgICAgICB9CiAgICB9Cn0K