/*
TASK:sym
LANG:C
*/
#include<stdio.h>
#include<stdlib.h>

#define MAXN 11000


void input();
void solve();
void sort(int l, int r);
void sort1(int l, int r);
int check(double, double, double, int);
void output(int code);


int x[MAXN],y[MAXN],idn[MAXN];
int N;
int f[MAXN] = {0};

int main()
{
input();
solve();
output(0);
return 0;
}



void solve()
{
int i;
double A, B, C;
double x_mid, y_mid;
int j;


for(i=2; i<=N; i++)
 {
 x_mid = (x[1] + x[i]) /2.;
 y_mid = (y[1] + y[i]) /2.;
 
 A = (x[1] - x[i]);
 B = (y[1] - y[i]);
 C = -A*(x_mid) - B*(y_mid);


 f[1] = idn[i];
 f[i] = idn[1];
 if(check(A,B,C,i))
  {
  output(1);
  }
 }
}



void output(int code)
{
int i;
if(code == 0) printf("0\n");
else
 {
 sort1(1,N);
 for(i=1; i<=N; i++) printf("%d ",f[i]);
 printf("\n");
 }
exit(0);
}





int check(double A, double B, double C, int j)
{

int i;
double A1, B1, C1;
double x0,y0;
double xx, yy;
int l, r, mid;
int flag = 0;


A1 = -B;
B1 = A;

for(i = 2; i<=N; i++)
 if(i!=j)
  {
C1 = -A1*x[i] - B1*y[i];

if(A*x[i]+B*y[i]+C == 0) { f[i] = idn[i]; continue; }

x0 = (B1*C - B*C1) / (B*A1 - B1*A);
y0 = (C1*A - C*A1) / (B*A1 - B1*A);
xx = 2*x0 - x[i];
yy = 2*y0 - y[i];
if(xx != (int) xx || yy != (int) yy) return 0;

l = 1; r = N+1;

flag=0;
while(l<=r)
  {
 mid = (l+r)/2;
 if(x[mid]>xx) r = mid-1;
 else if(x[mid]<xx) l = mid+1;
 else
  if(y[mid]>yy) r = mid-1;
  else if(y[mid]<yy) l = mid+1;
  else { f[i] = idn[mid]; flag=1; break; }
  }

if(flag == 0) return 0;
 }

return 1;
}




void input()
{
int i;
scanf("%d",&N);
for(i=1; i<=N;i++)
 {
 scanf("%d%d",&x[i],&y[i]);
 idn[i] = i;
 }
sort(1,N);
}



void sort(int l, int r)
{
int i,j;
int xx,yy;
int mid = (l+r)/2;
int t;

xx = x[mid]; yy = y[mid];
i = l; j = r;
while(i<j)
 {
 while(x[i] < xx || ( x[i] == xx && y[i] < yy )) i++;
 while(x[j] > xx || ( x[j] == xx && y[j] > yy )) j--;
 if(i<=j)
  {
  t = x[i];
  x[i] = x[j];
  x[j] = t;
  t = y[i];
  y[i] = y[j];
  y[j] = t;

  t = idn[i];
  idn[i] = idn[j];
  idn[j] = t;
  i++; j--;
  }
 }

if(l<j)  sort(l,j);
if(i<r)  sort(i,r);
}



void sort1(int l, int r)
{
int i,j;
int xx;
int mid = (l+r)/2;
int t;

xx = idn[mid];
i = l; j = r;
while(i<j)
 {
 while(idn[i] < xx ) i++;
 while(idn[j] > xx ) j--;
 if(i<=j)
  {
  t = x[i];
  x[i] = x[j];
  x[j] = t;
  t = y[i];
  y[i] = y[j];
  y[j] = t;
  t = f[i];
  f[i] = f[j];
  f[j] = t;
  t = idn[i];
  idn[i] = idn[j];
  idn[j] = t;
  i++; j--;
  }
 }

if(l<j)  sort1(l,j);
if(i<r)  sort1(i,r);
}

