#include<bits/stdc++.h>
using namespace std;
long long n,ans;
struct zbz{
long long x,y;
}zb[2005];
double jlgs(long long zb1,long long zb2){
return double(sqrt((zb[zb1].x-zb[zb2].x)*(zb[zb1].x-zb[zb2].x)
+(zb[zb1].y-zb[zb2].y)*(zb[zb1].y-zb[zb2].y)));
}
bool sjx(long long zb1,long long zb2,long long zb3){
if(jlgs(zb1,zb2)+jlgs(zb1,zb3)>jlgs(zb2,zb3)
and jlgs(zb1,zb3)+jlgs(zb2,zb3)>jlgs(zb1,zb2)
and jlgs(zb1,zb2)+jlgs(zb2,zb3)>jlgs(zb1,zb3))
return true;
return false;
}
bool dy(long long zb1,long long zb2,long long zb3){
if(jlgs(zb1,zb2)==jlgs(zb1,zb3)
or jlgs(zb1,zb2)==jlgs(zb2,zb3)
or jlgs(zb1,zb3)==jlgs(zb2,zb3))
return true;
return false;
}
int main(){
cin>>n;
for(long long i=0;i<n;i++)cin>>zb[i].x>>zb[i].y;
for(long long i=0;i<n;i++)
for(long long j=i;j<n;j++)
for(long long k=j;k<n;k++)
if(sjx(i,j,k) and dy(i,j,k))ans++;
cout<<ans;
return 0;
}