import java.util.*;
public class Main {
public static void bfs(ArrayList<ArrayList<Integer>> graph, int start, int n) {
Queue<Integer> queue = new LinkedList<>();
boolean[] visited = new boolean[n + 1];
int[] level = new int[n + 1];
queue.add(start);
visited[start] = true;
level[start] = 0;
while (!queue.isEmpty()) {
int node = queue.poll();
System.
out.
println("Node: " + node
+ ", Level: " + level
[node
]);
for (int neighbor : graph.get(node)) {
if (!visited[neighbor]) {
queue.add(neighbor);
visited[neighbor] = true;
level[neighbor] = level[node] + 1;
}
}
}
}
public static void main
(String[] args
) { int n = 6, m = 5;
int[][] edges = {
{1, 2}, {1, 3}, {2, 4}, {2, 5}, {3, 6}
};
ArrayList<ArrayList<Integer>> graph = new ArrayList<>();
for (int i = 0; i <= n; i++) {
graph.add(new ArrayList<>());
}
for (int[] edge : edges) {
int u = edge[0], v = edge[1];
graph.get(u).add(v);
graph.get(v).add(u);
}
bfs(graph, 1, n);
}
}
aW1wb3J0IGphdmEudXRpbC4qOwoKcHVibGljIGNsYXNzIE1haW4gewogICAgcHVibGljIHN0YXRpYyB2b2lkIGJmcyhBcnJheUxpc3Q8QXJyYXlMaXN0PEludGVnZXI+PiBncmFwaCwgaW50IHN0YXJ0LCBpbnQgbikgewogICAgICAgIFF1ZXVlPEludGVnZXI+IHF1ZXVlID0gbmV3IExpbmtlZExpc3Q8PigpOwogICAgICAgIGJvb2xlYW5bXSB2aXNpdGVkID0gbmV3IGJvb2xlYW5bbiArIDFdOwogICAgICAgIGludFtdIGxldmVsID0gbmV3IGludFtuICsgMV07CgogICAgICAgIHF1ZXVlLmFkZChzdGFydCk7CiAgICAgICAgdmlzaXRlZFtzdGFydF0gPSB0cnVlOwogICAgICAgIGxldmVsW3N0YXJ0XSA9IDA7CgogICAgICAgIHdoaWxlICghcXVldWUuaXNFbXB0eSgpKSB7CiAgICAgICAgICAgIGludCBub2RlID0gcXVldWUucG9sbCgpOwogICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIk5vZGU6ICIgKyBub2RlICsgIiwgTGV2ZWw6ICIgKyBsZXZlbFtub2RlXSk7CgogICAgICAgICAgICBmb3IgKGludCBuZWlnaGJvciA6IGdyYXBoLmdldChub2RlKSkgewogICAgICAgICAgICAgICAgaWYgKCF2aXNpdGVkW25laWdoYm9yXSkgewogICAgICAgICAgICAgICAgICAgIHF1ZXVlLmFkZChuZWlnaGJvcik7CiAgICAgICAgICAgICAgICAgICAgdmlzaXRlZFtuZWlnaGJvcl0gPSB0cnVlOwogICAgICAgICAgICAgICAgICAgIGxldmVsW25laWdoYm9yXSA9IGxldmVsW25vZGVdICsgMTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KCiAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmdbXSBhcmdzKSB7CiAgICAgICAgaW50IG4gPSA2LCBtID0gNTsKICAgICAgICBpbnRbXVtdIGVkZ2VzID0gewogICAgICAgICAgICB7MSwgMn0sIHsxLCAzfSwgezIsIDR9LCB7MiwgNX0sIHszLCA2fQogICAgICAgIH07CgogICAgICAgIEFycmF5TGlzdDxBcnJheUxpc3Q8SW50ZWdlcj4+IGdyYXBoID0gbmV3IEFycmF5TGlzdDw+KCk7CiAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPD0gbjsgaSsrKSB7CiAgICAgICAgICAgIGdyYXBoLmFkZChuZXcgQXJyYXlMaXN0PD4oKSk7CiAgICAgICAgfQoKICAgICAgICBmb3IgKGludFtdIGVkZ2UgOiBlZGdlcykgewogICAgICAgICAgICBpbnQgdSA9IGVkZ2VbMF0sIHYgPSBlZGdlWzFdOwogICAgICAgICAgICBncmFwaC5nZXQodSkuYWRkKHYpOwogICAgICAgICAgICBncmFwaC5nZXQodikuYWRkKHUpOwogICAgICAgIH0KCiAgICAgICAgYmZzKGdyYXBoLCAxLCBuKTsKICAgIH0KfQo=