很久以前,二维平面上有 $n$ 个点 $a_1, a_2, \dots, a_n$。世界保持了很长一段时间的稳定。然而,最近随着另外 $n$ 个点 $b_1, b_2, \dots, b_n$ 的出现,世界开始变得混乱,其中 $b_i = a_i + (\Delta x, \Delta y)$。现在,这 $2n$ 个点已经失去了它们的标识。
给定这 $2n$ 个点的坐标(顺序随机),你需要找出所有可能的 $(\Delta x, \Delta y)$,以帮助世界从混乱中恢复。
输入格式
第一行包含一个整数 $T$ ($1 \le T \le 100$),表示测试用例的数量。对于每个测试用例:
第一行包含一个整数 $n$ ($1 \le n \le 50\,000$),表示初始点的数量。
接下来的 $2n$ 行中,第 $i$ 行包含两个整数 $x_i$ 和 $y_i$ ($|x_i|, |y_i| \le 10^8$),描述当前点的坐标。
保证每个初始点的 $x$ 坐标和 $y$ 坐标都是从 $[-v, v]$ 的整数中均匀随机选择的,其中 $v$ 在 $[10^7, 10^8]$ 范围内选择。随机性条件不适用于样例测试,但你的程序必须通过样例。
同时保证所有 $n$ 的总和不超过 $300\,000$。
输出格式
对于每个测试用例,首先输出一行,包含一个整数 $k$,表示可能的 $(\Delta x, \Delta y)$ 的数量。然后输出 $k$ 行,每行包含两个整数 $\Delta x$ 和 $\Delta y$。保证 $k \ge 1$,当 $k \ge 2$ 时,你应该按 $\Delta x$ 的升序输出答案,若 $\Delta x$ 相等,则按 $\Delta y$ 的升序输出。
样例
样例输入 1
1 3 1 2 3 4 8 9 7 8 6 7 2 3
样例输出 1
2 -5 -5 5 5