{
zadatak: kartice
jezik: pascal
}

program kartice;

type
  TCoord = record
             x : Int64;
             y : Int64;
             p : Integer;
           end;

var
  n     : Integer;
  coord : Array of TCoord;


procedure ReadData;
var
  SFile : TextFile;
  C1    : LongInt;
begin
  Assign(SFile, 'kartice.in');
  Reset(SFile);
    ReadLn(SFile, n);
    SetLength(coord, n);
    For C1 := 0 to n - 1 Do
    Begin
      ReadLn(SFile, coord[C1].x, coord[C1].y);
      coord[C1].p := 0;
    End;
  Close(SFile);
end;

procedure WriteData;
var
  SFile : TextFile;
  C1    : Integer;
begin
  Assign(SFile, 'kartice.out');
  Rewrite(SFile);
    For C1 := 0 to n - 1 Do
      WriteLn(SFile, coord[C1].p);
  Close(SFile);
end;

procedure ProcessData;

  function PatternMatch(CC2, CC3, stad : Integer) : Integer;
  var
    C1, C2 : Integer;
    res    : Integer;
  begin
    res := 0;
    For C1 := 0 to stad Do
      For C2 := 0 to stad Do
        If (coord[CC2].x - coord[CC3].x = coord[C1].x - coord[C2].x) and
           (coord[CC2].y - coord[CC3].y = coord[C1].y - coord[C2].y) Then
          res := res + 1;
    PatternMatch := res;
  end;

var
  C1, C2, C3 : Integer;
  ptnum      : Integer;
begin
  For C1 := 0 to n - 1 Do
  Begin
    coord[C1].p := 0;
    For C2 := 0 to C1 Do
    Begin
      For C3 := C2 + 1 to C1 Do
      Begin
        ptnum := PatternMatch(C2, C3, C1);
        If ptnum > coord[C1].p Then
          coord[C1].p := ptnum;
      End;
    End;
  End;
end;


begin
  ReadData;
  ProcessData;
  WriteData;
end.
