考虑一个点集。如果两个点的 $x$ 坐标相同或 $y$ 坐标相同,则可以在它们之间直接移动。如果一个点集中任意两点间的最短(直接或间接)路径长度等于它们的曼哈顿距离,则称该点集为“优美点集”(nice set)。
给定 $N$ 个点,第 $i$ 个点的坐标为 $(x_i, y_i)$。
你可以添加最多 $10000 - N$ 个点,将给定的点集转换为一个优美点集。
输入格式
$N$ $x_1 \ y_1$ $x_2 \ y_2$ $\vdots$ $x_N \ y_N$
数据范围
- $2 \le N \le 1000$
- $1 \le x_i, y_i \le 1000$
- 所有点互不相同。
- 在这些限制条件下,保证至少存在一个解。
- 输入中的所有值均为整数。
输出格式
设 $M$ ($0 \le M \le 10000 - N$) 为添加点的数量,$(s_1, t_1), \dots, (s_M, t_M)$ 为它们的坐标。在向集合中添加这 $M$ 个点后,你将得到 $N + M$ 个点。这 $N + M$ 个点必须两两不同,且该集合必须是优美点集。坐标必须为整数。
请按以下格式输出答案:
$M$ $s_1 \ t_1$ $s_2 \ t_2$ $\vdots$ $s_M \ t_M$
如果存在多个可能的解,输出任意一个即可。
样例
样例输入 1
2 1 1 2 2
样例输出 1
1 1 2
样例输入 2
4 1 1 2 2 3 4 4 3
样例输出 2
4 1 2 3 2 3 3 4 4
样例输入 3
7 2 4 3 2 4 6 5 1 6 5 7 3 8 7
样例输出 3
15 3 6 8 5 2 2 7 5 2 5 6 6 3 1 5 6 6 2 6 1 7 1 7 2 2 3 6 7 2 6
说明
在样例 1 中,如果你添加点 $(1, 2)$,则可以通过 $(1, 2)$ 在 $(1, 1)$ 和 $(2, 2)$ 之间移动。