#include <iostream>
#include <fstream>
#include <cmath>
#include <algorithm>
using namespace std;

#define in cin
//ifstream in("4480.txt");

struct Punto
{
    int x, y;
};

struct Segmento
{
    double largo;
    int p1, p2;
};

bool operator < (const Segmento& s1, const Segmento& s2)
{
    return s1.largo < s2.largo;
}

double distancia(Punto ptos[], int i, int j)
{
    double x = ptos[j].x - ptos[i].x;
    double y = ptos[j].y - ptos[i].y;
    if (x == 0.0) return fabs(y);
    if (y == 0.0) return fabs(x);
    return fabs(y / sin(atan(y/x)));
}

int main()
{
    int n;
    while (in >> n && n != 0)
    {
        Punto ptos[n];
        for (int i = 0; i < n; i++)
            in >> ptos[i].x >> ptos[i].y;

        int m = n * (n - 1) / 2, k = 0;
        Segmento segs[m];
        for (int i = 0; i < n; i++)
            for (int j = i+1; j < n; j++)
            {
                segs[k].largo = distancia(ptos, i, j);
                segs[k].p1 = i;
                segs[k].p2 = j;
                k++;
            }

        sort(segs, segs + m);

        int isosceles = 0;
        for (int i = 0; i < m; i++)
            for (int j = i + 1; j < m && fabs(segs[i].largo - segs[j].largo) < 0.00000001 ; j++)
                if (segs[i].p1 == segs[j].p1 || segs[i].p1 == segs[j].p2 || segs[i].p2 == segs[j].p1 || segs[i].p2 == segs[j].p2)
                    isosceles++;
        cout << isosceles << endl;
    }
    return 0;
}

