最近,出现了一款名为“平行四边形”(Parallelograms)的新流行电脑游戏。在游戏开始时,电脑在屏幕上绘制了 $N$ 个点,其坐标为 $-10$ 到 $10$ 之间的整数(闭区间)。
游戏中唯一允许的操作是:选择 $3$ 个不共线的点 $A, B, C$,然后用一个新点 $D$ 代替点 $C$,使得 $ACBD$ 是一个以线段 $AB$ 为对角线的平行四边形。注意,这样的点 $D$ 总是存在且唯一的。
在开始时,所有点都是互不相同的,但在游戏过程中,允许两个或多个点具有相同的坐标。此外,所有新创建的点的坐标绝对值必须最多为 $10^9$。
游戏的目标是通过一系列操作,将所有点移动到第一象限。更准确地说,在游戏结束时,所有点都必须具有非负坐标。
寻找一个由最多 $2\,500$ 步操作组成的序列,将所有点移动到第一象限,或者确定不存在这样的操作序列。
输入格式
输入的第一行包含任务中的数量 $N$($3 \le N \le 400$)。
接下来的 $N$ 行中,第 $i$ 行包含第 $i$ 个点的坐标 $X_i, Y_i$($-10 \le X_i, Y_i \le 10$)。
在开始时,没有两个点具有相同的坐标。
输出格式
如果无解,输出的第一行也是唯一的一行必须包含 $-1$。
否则,输出的第一行必须包含操作步数 $M$($0 \le M \le 2\,500$)。
接下来的 $M$ 行,每行必须包含 $3$ 个不同的数字 $A, B, C$($1 \le A, B, C \le N$),表示参与该步操作的点的索引。索引为 $C$ 的点将根据所述规则发生改变,而索引为 $A$ 和 $B$ 的点保持不变。
样例
输入样例 1
3 0 0 4 0 3 -1
输出样例 1
1 1 2 3
输入样例 2
4 5 0 0 5 -2 -2 -3 2
输出样例 2
2 1 2 3 1 2 4
输入样例 3
3 -1 -1 -2 -2 -3 -3
输出样例 3
-1