EduBrick

K. Глубина в дереве кратчайших путей

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

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

Родитель определяется тем же правилом: наименьшая вершина uu с dist[u]+w(u,v)=dist[v]\mathrm{dist}[u] + w(u, v) = \mathrm{dist}[v]. Глубина вершины 1 равна нулю; для недостижимых выведите −1-1.

Считать глубины удобно, перебирая вершины в порядке возрастания расстояния: к моменту, когда очередь доходит до vv, глубина её родителя уже посчитана. Веса строго положительны, поэтому такой порядок законен.

Формат ввода

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

Далее идут mm строк с рёбрами: концы и вес ww (1≤w≤1041 \le w \le 10^4).

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

Одна строка из nn чисел.

Примеры

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