When a competitive programmer thinks of a tree, it's not the same tree that a regular person thinks of. Luckily, in this task, both meanings are correct.
Nikola loves nature and often walks in the woods, looking at the trees and admiring their size, node degrees, paradoxically regular randomness, etc. In this day of lovely spring, there are even more reasons to look above into these magnificent creatures: the trees are full of color and that captured Nikola's attention.
So one day he observed a large tree with nodes, seeing a color in each node. Was there a flower, an animal, or Nikola simply went mad, it's hard to say. But he was looking at that tree for a very long time, and in an matrix he wrote, for every two nodes, the number of distinct colors on a unique simple path between (and including) these two nodes. Sadly, by admiring all those colors, Nikola completely forgot what the tree looked like and which colors were in the nodes.
So he needs your help. From the matrix he wrote, determine a possible tree and possible colors of the respective nodes. Colors should be denoted by numbers from . It is guaranteed that Nikola did not make a mistake; in other words, a solution will exist.
Input Specification
The first line contains a subtask number (, or ) from the Scoring section below.
The second line contains an integer , the number of nodes in the tree, which are denoted .
Each of the next lines contains integers, where -th number in -th line equals the number of distinct colors on the path from node to node .
Output Specification
The first line should contain space-separated integers between and : colors of the nodes .
Each of the next lines should contain two integers representing the edge (neighboring nodes) in the tree. Order of the edges and nodes inside an edge is arbitrary.
Constraints
Subtask | Points | Constraints |
---|---|---|
1 | 18 | All numbers in the matrix equal or . |
2 | 25 | There is a solution where the tree is a chain of nodes in that order, i.e., the edges are for each |
3 | 57 | No additional constraints. |
Sample Input 1
3
5
1 2 2 2 3
2 1 3 3 2
2 3 1 3 4
2 3 3 1 3
3 2 4 3 1
Sample Output 1
1 2 3 4 4
1 2
1 3
1 4
2 5
Sample Input 2
2
4
1 2 3 3
2 1 2 2
3 2 1 2
3 2 2 1
Sample Output 2
1 2 3 2
1 2
2 3
3 4
Sample Input 3
1
5
1 2 2 2 2
2 1 1 2 2
2 1 1 2 2
2 2 2 1 2
2 2 2 2 1
Sample Output 3
1 2 2 1 2
1 2
2 3
2 4
1 5
Comments