#include <cstdio>
#include <algorithm>
using namespace std;
struct coor {
int x, y;
coor() {;}
coor(const int a, const int b) { x = a; y = b; }
};
bool operator<(const coor &a, const coor &b) {
return a.x < b.x || (a.x == b.x && a.y < b.y);
}
coor operator+(const coor &a, const coor &b) {
return coor(a.x + b.x, a.y + b.y);
}
coor operator/(const coor &a, const int k) {
return coor(a.x / k, a.y / k);
}
const int NMAX = 1024;
const int ZEC = 1000;
int N;
coor A[NMAX];
int cnt;
void read() {
FILE *fin = fopen("patrate3.in", "rt");
int i, u, v;
fscanf(fin, " %d", &N);
for (i = 0; i < N; ++i) {
fscanf(fin, " %d.%d", &u, &v);
A[i].x = u * ZEC + (u < 0 ? -v : v) / 10;
fscanf(fin, " %d.%d", &u, &v);
A[i].y = u * ZEC + (u < 0 ? -v : v) / 10;
}
fclose(fin);
}
void count() {
int i, j;
coor c1, c2, mij, d;
for (i = 0; i < N; ++i)
for (j = i + 1; j < N; ++j) {
mij = (A[i] + A[j]) / 2;
d = coor( mij.x - A[i].x, mij.y - A[i].y );
c1 = coor(mij.x + d.y, mij.y - d.x);
c2 = coor(mij.x - d.y, mij.y + d.x);
if (binary_search(A + i + 1, A + N, c1) && binary_search(A + i + 1, A + N, c2))
// printf("%d %d\n", i, j),
// printf("%d %d ... %d %d\n", A[i].x, A[i].y, A[j].x, A[j].y),
// printf("%d %d ... %d %d\n\n", c1.x, c1.y, c2.x, c2.y),
++cnt;
}
}
void write() {
FILE *fout = fopen("patrate3.out", "wt");
fprintf(fout, "%d\n", cnt);
fclose(fout);
}
int main() {
read();
sort(A, A + N);
count();
write();
return 0;
}