2017-08-15 14:51

Super Knight

  • square
  • as
  • ai
  • it


A super knight moves in the infinite n-dimensional space. Each move it can perform is described by a vector – a vector (a1, a2, …, an) indicates that a move from the square (with coordinates) (x1, x2, …, xn) to the square (x1 + a1, x2 + a2, …, xn + an) or (x1 − a1, x2 − a2, …, xn − an) is possible. Each knight has a prescribed set of such vectors, describing the moves this knight can make. For each knight we assume that this knight can reach anywhere in the space if it is allowed (but actually disallowed) to move along a fractional part of a vector.

We say two knights are equivalent, if they can reach exactly the same squares starting from the square (0, 0, …, 0) (by making many moves, perhaps). (Let us point out that equivalent knights may reach these squares in different number of moves). It can be shown that for every knight there exists an equivalent one whose moves are described by only n vectors.

Given a set of m (m > n) vectors describing the moves of a super knight, determine an equivalent knight as mentioned above.


The input contains exactly one test case. The first line of input contains two integers m and n (2 ≤ n < m ≤ 100, n ≤ 10, n · m ≤ 200). The next m lines each contains an integral n-dimensional vector (a1, a2, …, an). It is guaranteed that for all i (1 ≤ i ≤ n) if n = 2, |ai| ≤ 103, otherwise |ai| ≤ 102.


Output n n-dimensional vectors describing the moves of an equivalent knight, each on a separate line.

Sample Input

3 2
1 0
0 5
0 7
Sample Output

1 0
0 1

  • 点赞
  • 回答
  • 收藏
  • 复制链接分享