骑士在无限大的棋盘上移动。它的每一步移动由一对整数描述——一对 $(a,b)$ 表示可以从坐标为 $(x,y)$ 的方格移动到 $(x+a,y+b)$ 或 $(x-a,y-b)$。每种骑士都有一组预设的此类移动对。对于每个骑士,我们假设它从 $(0,0)$ 出发能到达的所有方格并不都在同一条直线上。
如果两个骑士从 $(0,0)$ 出发能够到达完全相同的方格集合(通过多次移动),我们称这两个骑士是等价的。(请注意,等价的骑士到达这些方格所需的步数可能不同)。可以证明,对于每一个骑士,都存在一个等价的骑士,其移动仅由两对数字描述。
编写一个程序:
- 从标准输入读取描述骑士移动的对数,
- 确定描述等价骑士移动的两对整数,
- 将这两对整数写入标准输出。
输入格式
标准输入的第一行包含一个整数 $n$,表示描述骑士移动的对数,$3 \le n \le 100$。接下来的 $n$ 行每行包含一对整数,表示骑士的移动。在这些行中,每行有两个由单个空格分隔的整数 $a_i$ 和 $b_i$,$-100 \le a_i, b_i \le 100$。我们假设 $(a_i, b_i) \neq (0,0)$。
输出格式
标准输出的第一行应写入两个由单个空格分隔的整数 $a$ 和 $b$,$-10\,000 \le a, b \le 10\,000$。第二行应写入两个由单个空格分隔的整数 $c$ 和 $d$,$-10\,000 \le c, d \le 10\,000$。上述整数应满足以下条件:移动由 $(a,b)$ 和 $(c,d)$ 对描述的骑士与输入数据中描述的骑士等价。
样例
输入 1
3 24 28 15 50 12 21
输出 1
468 1561 2805 9356
输入 2
3 24 28 15 50 12 21
输出 2
3 0 0 1