// Example program
#include <bits/stdc++.h>

using namespace std;

struct ucenik{
    int x;
    int y;
};

bool osnoviceDuzina(ucenik u1, ucenik u2, ucenik u3, ucenik u4){
    //u1u2 || u3u4
    int osnovica1kv=pow(u1.x-u2.x,2)+pow(u1.y-u2.y,2);
    int osnovica2kv=pow(u3.x-u4.x,2)+pow(u3.y-u4.y,2);
    if(osnovica1kv==4*osnovica2kv||osnovica1kv*4==osnovica2kv){
        return true;
    }else{
        //cout<<"osnovice kv "<<osnovica1kv<<" != "<<osnovica2kv<<endl;
        return false;       
    }
}

bool istiPravac(ucenik u1, ucenik u2, ucenik u3, ucenik u4){
    if(abs(u1.x-u2.x)*abs(u3.y-u4.y)==abs(u1.y-u2.y)*abs(u3.x-u4.x)){
        return true;
    }else{
        return false;    
    }
}

bool trapez(ucenik u1, ucenik u2, ucenik u3, ucenik u4){
    if(istiPravac(u1,u2,u3,u4)&&osnoviceDuzina(u1,u2,u3,u4)) return true;
    if(istiPravac(u1,u3,u2,u4)&&osnoviceDuzina(u1,u3,u2,u4)) return true;
    if(istiPravac(u1,u4,u2,u3)&&osnoviceDuzina(u1,u4,u2,u3)) return true;
    if(istiPravac(u2,u3,u1,u4)&&osnoviceDuzina(u2,u3,u1,u4)) return true;
    if(istiPravac(u2,u4,u1,u3)&&osnoviceDuzina(u2,u4,u1,u3)) return true;
    if(istiPravac(u3,u4,u1,u2)&&osnoviceDuzina(u3,u4,u1,u2)) return true;
    return false;
}


using namespace std;

int main()
{
    int brojTakmicara;
    cin>>brojTakmicara;
    vector <ucenik> takmicari (brojTakmicara);
    for(int i=0; i<brojTakmicara; i++){
        cin>>takmicari[i].x;
        cin>>takmicari[i].y;
    }
    
    int sumnjivi=0;
    
    for(int a=0; a<brojTakmicara-3; a++){
        for(int b=a+1; b<brojTakmicara-2; b++){
            for(int c=b+1; c<brojTakmicara-1; c++){
                for(int d=c+1; d<brojTakmicara; d++){
                    //cout<<a<<" "<<b<<" "<<c<<" "<<d<<endl;
                    if(trapez(takmicari[a], takmicari[b], takmicari[c], takmicari[d])){
                        sumnjivi++;    
                    }
                }    
            }    
        }    
    }
    
    cout<<sumnjivi<<endl;
}