EduBrick

M. Две дороги бесплатно

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

Как классная задача M, но бесплатных проездов теперь два — воспользоваться можно ноль, один или два раза.

Слоёв становится три: (v,0)(v, 0), (v,1)(v, 1), (v,2)(v, 2) — сколько бесплатных проездов уже израсходовано. Переходы те же: по ребру внутри слоя за его вес, по ребру между соседними слоями бесплатно.

Ответ — наименьшее из трёх состояний в вершине nn.

Приём обобщается на любое kk: слоёв k+1k + 1, вершин n(k+1)n(k+1), рёбер m(2k+1)m(2k+1). Именно так решаются задачи вида «можно kk раз сделать что-то особенное»: ресурс становится частью вершины.

Формат ввода

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

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

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

Одно число — наименьшая стоимость или −1-1.

Примеры

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