{
ZADATAK: kartice
JEZIK: pascal
}
program kartice;
var trmax,pomX,pomY,n,i,j,i1,j1:integer;
		max,x,y:array[1..3000] of longint;
procedure ulaz;
 var t:text;
 begin
 assign(t,'kartice.in');
 reset(t);
 readln(t,n);
 for i:=1 to n do
	begin
	readln(t,x[i],y[i]);
	trmax:=0;
	for j:=2 to i do
	 begin
	 trmax:=0;
	 pomX:=x[1]-x[j];
	 pomY:=y[1]-y[j];
	 for i1:=1 to i do
		for j1:=1 to i do
		 if(x[i1]+pomX=x[j1]) and (y[i1]+pomY=y[j1]) then
			begin
			trmax:=trmax+1;
			break;
			end;
		if j=1 then max[i]:=trmax
					 else if trmax>max[i] then max[i]:=trmax;
	 end;
	end;
 close(t);
 end;

procedure izlaz;
 var t:text;
 begin
 assign(t,'kartice.out');
 rewrite(t);
 for i:=1 to n do
	writeln(t,max[i]);
 close(t);
 end;

begin
ulaz;

izlaz;
end.