F. Дореми и экспериментальное дерево
ограничение по времени на тест
2.5 секунд
ограничение по памяти на тест
256 мегабайт
ввод
стандартный ввод
вывод
стандартный вывод

У Дореми есть реберно-взвешенное дерево из $$$n$$$ вершин, веса являются целыми числами от $$$1$$$ до $$$10^9$$$. Дореми провела $$$\frac{n(n+1)}{2}$$$ экспериментов с деревом.

В каждом эксперименте Дореми выбирает две вершины $$$i$$$ и $$$j$$$ такие, что $$$j \leq i$$$, и соединяет их дополнительным ребром веса $$$1$$$. После этого в графе образовывается один цикл (или петля, если $$$i=j$$$). Дореми определяет $$$f(i,j)$$$ как сумму длин кратчайших путей от каждой вершины до цикла.

Формально, пусть $$$\mathrm{dis}_{i,j}(x,y)$$$ — длина кратчайшего пути между вершинами $$$x$$$ и $$$y$$$, когда в дерево добавлено одно ребро $$$(i,j)$$$ веса $$$1$$$, а $$$S_{i,j}$$$ — множество вершин на цикле, когда добавлено ребро $$$(i,j)$$$. Тогда $$$$$$ f(i,j)=\sum_{x=1}^{n}\left(\min_{y\in S_{i,j}}\mathrm{dis}_{i,j}(x,y)\right). $$$$$$

Дореми записала все значения $$$f(i,j)$$$ для $$$1 \leq j \leq i \leq n$$$, потом пошла спать. Однако проснувшись, она обнаружила, что дерево пропало. К счастью, значения $$$f(i,j)$$$ все еще в ее тетради, и она значит, каким $$$i$$$ и $$$j$$$ они соответствуют. Вам даны значения $$$f(i,j)$$$, можете ли вы помочь Дореми восстановить дерево?

Гарантируется, что хотя бы одно подходящее дерево существует.

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

Первая строка содержит одно целое число $$$n$$$ ($$$2 \le n \le 2000$$$) — количество вершин в дереве.

Следующие $$$n$$$ строк содержат нижне-треугольную матрицу с $$$i$$$ целыми числами в $$$i$$$-й строке; $$$j$$$-е число в $$$i$$$-й строке равно $$$f(i,j)$$$ ($$$0 \le f(i,j) \le 2\cdot 10^{15}$$$).

Гарантируется, что существует дерево, веса ребер которого являются целыми числами в пределах от $$$1$$$ до $$$10^9$$$ такое, что все значения $$$f(i,j)$$$ для этого дерева совпадают с данными.

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

Выведите $$$n-1$$$ строку, описывающую дерево. В $$$i$$$-й строке выведите три целых числа $$$u_i$$$, $$$v_i$$$, $$$w_i$$$ ($$$1 \le u_i,v_i \le n$$$, $$$1 \le w_i \le 10^9$$$), обозначающих ребро $$$(u_i,v_i)$$$ веса $$$w_i$$$.

Если существуют несколько решений, выведите любое из них.

Ребра должны образовывать дерево, а все значения $$$f(i,j)$$$ должны совпадать с данными.

Примеры
Входные данные
3
7
3 5
0 2 8
Выходные данные
2 3 3
1 2 2
Входные данные
9
8081910646
8081902766 8081903751
8081902555 8081903540 8081905228
3090681001 3090681986 3090681775 7083659398
7083657913 7083658898 7083658687 2092437133 15069617722
1748216295 1748217280 1748217069 5741194692 749972427 10439821163
2377558289 2377559274 2377559063 6370536686 1379314421 5028071980 8866466178
1746983932 1746984917 1746984706 5739962329 748740064 10438588800 5026839617 10448447704
2341942133 2341943118 2341942907 6334920530 1343698265 4992455824 8830850022 4991223461 9115779270
Выходные данные
1 2 985
2 3 211
2 4 998244353
2 5 998244853
4 6 671232353
6 8 1232363
4 7 356561356
7 9 35616156
Примечание

Для первого примере рисунок ниже слева направо сверху вниз показывает графы, получающиеся при добавлении ребер $$$(1,1)$$$, $$$(1,2)$$$, $$$(1,3)$$$, $$$(2,2)$$$, $$$(2,3)$$$, $$$(3,3)$$$ соответственно. Вершины на цикле выделены желтым.