EduBrick

L. Глубины дерева обхода

3000 мс · 256 МБ · всё или ничего

Неориентированный граф задан списком рёбер. Запустите обход в глубину из вершины 1 и для каждой вершины выведите её глубину в дереве обхода — число рёбер на пути от вершины 1 до неё в этом дереве.

Глубина вершины 1 равна нулю. Для недостижимых вершин выведите −1-1.

Важно понимать: это не кратчайшее расстояние. Обход в глубину заходит вглубь до упора, и его дерево может быть куда длиннее кратчайших путей. Кратчайшие будут на следующем занятии, и полезно увидеть разницу заранее.

Соседей перебирайте по возрастанию номера.

Формат ввода

Первая строка содержит числа nn (1≤n≤1051 \le n \le 10^5) и mm (0≤m≤2⋅1050 \le m \le 2 \cdot 10^5).

Далее идут mm строк с рёбрами.

Формат вывода

Одна строка из nn чисел — глубины вершин.

Примеры

ввод
5 4
1 2
1 3
2 4
3 5
вывод
0 1 1 2 2
ввод
4 2
1 2
3 4
вывод
0 1 -1 -1
Войдите, чтобы отправлять решения.