#include <bits/stdc++.h>

using namespace std;

struct niz
{
public:
    long long x,y;
};
struct nizstranica
{
public:
    long long x1,y1,x2,y2;
    double d;
};
bool sor(nizstranica a,nizstranica b)
{
    if(a.d<b.d) return true;
    else return false;
}
bool dalisuparalelne(nizstranica a,nizstranica b)
{
    double b1,m1,b2,m2;
    if(a.x1!=a.x2&&b.x1!=b.x2)
    {
        if((a.y1-a.y2)*(b.x1-b.x2)==(b.y1-b.y2)*(a.x1-a.x2))
            return true;
        return false;
    }
    else
    {
        if(a.x1==a.x2&&b.x1==b.x2) return true;
        return false;
    }
}
int main()
{
    ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL);
    int n,k=0;
    cin>>n;
    niz a[n];
    for(int i=0;i<n;i++) cin>>a[i].x>>a[i].y;
    nizstranica b[(n*n-n)/2];
    for(int i=0;i<n;i++)
    {
        for(int j=i+1;j<n;j++)
        {
            b[k].x1=a[i].x;
            b[k].x2=a[j].x;
            b[k].y1=a[i].y;
            b[k].y2=a[j].y;
            b[k++].d=sqrt((a[i].x-a[j].x)*(a[i].x-a[j].x)+(a[i].y-a[j].y)*(a[i].y-a[j].y));
        }
    }
    int br=0;
    sort(b,b+k,sor);
    for(int i=0;i<k;i++)
    {
        for(int j=i+1;j<k;j++)
        {
            if(dalisuparalelne(b[i],b[j])&&abs(b[i].x1-b[i].x2)*2==abs(b[j].x1-b[j].x2)&&abs(b[i].y1-b[i].y2)*2==abs(b[j].y1-b[j].y2))
            br++;
            if(b[i].d*2+0.00002<b[j].d) j=k;
        }
    }
    cout<<br;
}