program patrate3;
type punct=record
x,y:real;
end;
var f,g:text;
n:longint;
v:array[1..1001] of punct;
procedure iofile;
var i:longint;
x,y:real;
begin
assign(f,'patrate3.in');
reset(f);
assign(g,'patrate3.out');
rewrite(g);
readln(f,n);
for i:=1 to n do
begin
readln(f,x,y);
v[i].x:=round(x*10000);
v[i].y:=round(y*10000);
end;
close(f);
end;
function dist(i,j:longint):real;
begin
dist:=sqr(v[i].x-v[j].x)+sqr(v[i].y-v[j].y);
end;
procedure prel;
var nr,i,j,k,l:longint;
begin
nr:=0;
for i:=1 to n-3 do
for j:=i+1 to n-2 do
for k:=j+1 to n-1 do
if ((dist(i,j)+dist(i,k)=dist(j,k))and(dist(i,j)=dist(i,k)))or
((dist(i,j)+dist(j,k)=dist(i,k))and(dist(i,j)=dist(j,k))) or
((dist(i,k)+dist(j,k)=dist(i,j))and(dist(i,k)=dist(j,k)))then
for l:=k+1 to n do
if ((dist(l,i)=dist(l,k))and(dist(l,i)=dist(i,j))and(dist(i,j)=dist(j,k)))or
((dist(l,j)=dist(l,k))and(dist(l,j)=dist(i,j))and(dist(i,j)=dist(i,k)))or
((dist(l,i)=dist(l,j))and(dist(l,i)=dist(i,k))and(dist(i,k)=dist(j,k)))then
inc(nr);
writeln(g,nr);
close(g);
end;
begin
iofile;
prel;
end.