#codefestivalchinac. [code_festival_china_c]Regular Polygon

[code_festival_china_c]Regular Polygon

问题

给定一个直角坐标系上的整数点阵,你想要从中选择一些点,用直线连接这些点以构成一个正多边形。此外,你希望尽可能选择更多的点来构成一个具有尽可能多顶点的正多边形。

请确定你应该选择哪些点以构成具有最多顶点的正多边形。如果存在多个可能的答案,你可以选择任意一个。


输入

输入数据按照下列格式给出。

NN x1x_1 y1y_1 x2x_2 y2y_2 : xNx_N yNy_N

  • 第一行是一个整数N(1leqNleq1,000)N (1 \\leq N \\leq 1,000),表示给定的整数点的数量。
  • 接下来的NN行,每行包含一个整数点的坐标。第ii行(1leqileqN1 \\leq i \\leq N)包含两个整数xi,yi(109leqxi,yileq109)x_i,y_i (-10^9 \\leq x_i,y_i \\leq 10^9),表示第ii个整数点的xxyy坐标。
  • 每个给定的整数点都是不同的。换句话说,对于任意两个整数i,j(1leqi,jleqN)i,j(1 \\leq i,j \\leq N),如果ineqji \\neq j,则(xi,yi)(xj,yj)(x_i,y_i)≠(x_j,y_j)

输出

第一行输出一个整数mm,表示你选择的用于构成具有最多顶点的正多边形的点的数量。

接下来的mm行,按照升序输出你选择的每个点的索引(从1开始索引)。

如果无法从给定的点中构成任何正多边形,则只需输出一行包含一个整数00


输入示例 1


6
1 0
-1 0
0 1
0 -1
1 2
-1 2

输出示例 1


4
1
2
3
4

在给定的66个点中,你可以选择44个点(1,0),(1,0),(0,1),(0,1)(1,0),(-1,0),(0,1),(0,-1)来构成一个具有最多顶点的正方形。因此答案是44以及这些点的索引。

(1,0),(1,0),(1,2),(1,2)(-1,0),(1,0),(1,2),(-1,2)也可以构成一个正方形。所以它们的索引1,2,5,6{1,2,5,6}也被认为是正确的。


输入示例 2


4
0 0
1 0
2 0
3 0

输出示例 2


0

给定的点在一条直线上。你无法从这些点中构成任何正多边形。