{
TASK:sym
LANG:PASCAL
}

const
        max=MAxint;

type
        point=record
         x,y:real
        end;


         MASiv=array[1..10000] of point;

         MASiv1=array[1..10000] of INteger;

var
     a:MASiv;
     i,j,n,m,K,L:INteger;
     k1,k2,k3,k4:Real;
     b:MAsiv1;
     k5,k6,k7,k8:real;

     procedure prava(a,b:Point;var k1,k2:real);
      begin
       if b.x<>a.x then
        begin
         k1:=(b.y-a.y)/(b.x-a.x);
         k2:=(a.y*b.x-a.x*b.y)/(b.x-a.x)
        end        else

          begin
           k1:=max;
           k2:=a.y
          end;

      end;


    procedure sim(a,b:Point;var k3,k4:Real);
     var
        k1,k2:REal;
        p,q:Real;
      begin
       p:=(a.x+b.x)/2;
       q:=(a.y+b.y)/2;
       prava(a,b,k1,k2);
       k3:=-k1;
       k4:=q+k1*p
      end;

     function good(b:Masiv1):Boolean;
      var
        s:Longint;
        i:Integer;
       begin
        s:=0;
         for i:=1 to n do inc(S,b[i]);
         good:=s=n*(n+1)/2
       end;

       procedure make(var b:Masiv1);
        var
                i:Integer;
         begin
          for i:=1 to n do  b[i]:=0
         end;

       procedure writeall(b:Masiv1);
        var
                i:integer;
         begin
          for i:=1 to n do write(b[i],' ')
         end;

 begin

  readln(n);
   for i:=1 to n do
    with a[i] do readln(x,y);

     if a[1].y=a[2].y then
      begin
       writeln('2 1 4 3');
       exit
      end;


      for i:=1 to n-1 do
       for j:=i+1 to n do
        begin
         make(b);
         prava(a[i],a[j],k1,k2);
         sim(a[i],a[j],k3,k4);
          for k:=1 to n-1 do
           for l:=k+1 to n do
            begin
             prava(a[k],a[l],k5,k6);
             sim(a[k],a[l],k7,k8);
             if (k5=k3) and (k6=k4) then
              begin
               b[l]:=l;
               b[k]:=k
              end;


             if (k7=k3) and (k8=k4) then
              begin
               b[l]:=k;
               b[k]:=l
              end;
            end;

         if good(b) then
          begin
           writeall(b);
           exit
          end
        end;

        writeln(0)
 end.
















