Donghyun 最近买了一块方形桌布。桌布上有 $N$ 个点,从桌布的两面都可以看到这些点。Donghyun 认为桌布可以变得更漂亮,于是他决定用缝纫来装饰桌布。
为了方便起见,假设每个点都是 $xy$ 平面上的一个点,点从 $1$ 到 $N$ 编号。点 $i$ ($1 \le i \le N$) 位于坐标 $(x_i, y_i)$。没有两个点坐标相同。缝纫序列是一个长度为 $k \ge 2$ 的整数序列 $\{s_i\}$,满足 $1 \le s_i \le N$ ($1 \le i \le k$) 且 $s_i \neq s_{i+1}$ ($1 \le i \le k-1$)。该序列按照以下规则在桌布上绘制边:
- 对于所有 $1 \le i \le \lceil \frac{k}{2} \rceil$,在桌布正面绘制一条连接点 $s_{2i-1}$ 和点 $s_{2i}$ 的边。
- 对于所有 $1 \le j \le \lfloor \frac{k-1}{2} \rfloor$,在桌布背面绘制一条连接点 $s_{2j}$ 和点 $s_{2j+1}$ 的边。
Donghyun 想要在桌布上制作一个美丽的图案,其定义如下:
- 对于桌布的两面,所有 $N$ 个点都被该面上的边连接起来。
- 同一面上的两条边只能在公共端点处相交。
Donghyun 非常忙,所以他想尽快完成缝纫工作。换句话说,在所有能产生美丽图案的缝纫序列中,Donghyun 决定选择最短的一个。你的任务是找到这样一个序列。
注意,Donghyun 想要最小化缝纫序列本身的长度,而不是他所绘制边的长度之和。
输入格式
第一行包含一个整数 $N$。($2 \le N \le 1000$)
接下来的 $N$ 行,每行包含两个整数 $x_i$ 和 $y_i$,表示点 $i$ 位于坐标 $(x_i, y_i)$。($1 \le x_i, y_i \le 10^9$)
没有两个点坐标相同。
输出格式
第一行输出一个正整数 $k$,即产生美丽图案的最短缝纫序列的长度。
下一行输出 $s_1, s_2, \dots, s_k$,即实际的缝纫序列。
可以证明,对于每一个可能的输入,都存在一个能产生美丽图案的缝纫序列。
样例
样例输入 1
5 1 1 2 4 3 2 4 5 5 3
样例输出 1
9 1 2 1 4 1 3 5 3 1
说明
图 1. 样例输出的可视化。实线表示正面的边,虚线表示背面的边。