#include <bits/stdc++.h>
using namespace std;
struct Point {
  long long int a;
  long long int b;
};
bool acomparenum1(Point x, Point y) {
  if (x.a != y.a) {
    return x.a > y.a;
  } else {
    return x.b > y.b;
  }
};
int main() {
  long long int n;
  cin >> n;
  Point array[n];
  for (long long int i = 0; i < n; i++) {
    cin >> array[i].a >> array[i].b;
    array[i].a *= 2;
    array[i].b *= 2;
  }
  vector<Point> midpoints;
  for (long long int i = 0; i < n; i++) {
    for (long long int j = 0; j < n; j++) {
      if (i < j && i != j) {
        Point midpoint;
        midpoint.a = (array[i].a + array[j].a) / 2;
        midpoint.b = (array[i].b + array[j].b) / 2;
        midpoints.push_back(midpoint);
      }
    }
  }
  sort(midpoints.begin(), midpoints.end(), acomparenum1);
  long long int sameness = 0;
  long long int answer = 0;
  for (long long int i = 0; i < n * (n - 1) / 2 - 1; i++) {
    if (midpoints[i].a == midpoints[i + 1].a &&
        midpoints[i + 1].b == midpoints[i].b) {
      sameness += 1;
      answer += sameness;
    } else {
      sameness = 0;
    }
  }
  cout << answer << endl;
}
