E. Маршрут Президента
ограничение по времени на тест
4 секунды
ограничение по памяти на тест
256 мегабайт
ввод
stdin
вывод
stdout

В старой доброй Берляндии n городов, m дорог. Каждая из дорог соединяет пару различных городов и является двусторонней. Между парой городов не более одной дороги. Известна длина каждой из дорог.

Известно, что совсем скоро Президент поедет по дорогам Берляндии из города s в город t. Конечно, он выберет один из кратчайших путей из s в t, но какой именно — не известно.

Министр транспорта очень боится, что Президент будет расстроен состоянием дорог страны. По этой причине он планирует организовать ремонт тех дорог, по которым может проходить путь Президента.

Составить бюджет для такого мероприятия — непростая задача. Для всех возможных различных пар s, t (s < t) найдите количество дорог, которые лежат на хотя бы одном кратчайшем пути из s в t.

Входные данные

В первой строке входных данных записаны целые числа n, m (2 ≤ n ≤ 500, 0 ≤ m ≤ n·(n - 1) / 2) — количество городов и дорог соответственно. Далее следует m строк с описаниями дорог, по одному описанию в строке. Каждое описание содержит три целых числа xi, yi, li (1 ≤ xi, yi ≤ n, xi ≠ yi, 1 ≤ li ≤ 106), где xi, yi — номера соединяемых i-й дорогой городов, а li — ее длина.

Выходные данные

Выведите последовательность целых чисел c12, c13, ..., c1n, c23, c24, ..., c2n, ..., cn - 1, n, где cst — искомое количество дорог на пути из s в t. Элементы последовательности c выводите в описанном порядке. Если между парой городов s и t вообще нет пути, то cst = 0.

Примеры
Входные данные
5 6
1 2 1
2 3 1
3 4 1
4 1 1
2 4 2
4 5 4
Выходные данные
1 4 1 2 1 5 6 1 2 1