EduBrick

N. Сколько обменов в выгодной цепочке

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

Как классная задача N, но выведите наименьшее количество обменов в выгодной цепочке.

Сведение то же: вес ребра равен −a-a, выгодная цепочка — отрицательный цикл. Меняется вопрос: нужен не факт существования, а длина самого короткого такого цикла.

Считается динамикой по числу рёбер, как в классной задаче O: fk[i][i]<0f_k[i][i] < 0 для наименьшего kk и есть ответ.

Обмен валюты на саму себя с положительным показателем — цепочка из одного обмена, и это законный ответ.

Формат ввода

Первая строка содержит числа nn (1≤n≤601 \le n \le 60) и mm (0≤m≤20000 \le m \le 2000).

Далее идут mm строк: валюта uu, валюта vv и показатель aa (∣a∣≤1000|a| \le 1000).

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

Одно число — наименьшее количество обменов, или −1-1, если выгодной цепочки нет.

Примеры

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