#include <bits/stdc++.h>
#pragma GCC optimize("Ofast")
#pragma GCC optimize("unroll-loops")
#pragma GCC target("sse,sse2,sse3,ssse3,sse4,popcnt,abm,mmx,avx,tune=native")
const double Pi = acos(-1);
using namespace std;
int debug = 0;
long long bigmod(long long base, long long pw) {
  if (!pw) return 1;
  long long ret = bigmod(base, pw >> 1);
  return pw & 1 ? (((ret * ret) % 1000000007) * base) % 1000000007
                : (ret * ret) % 1000000007;
}
int main() {
  int n;
  cin >> n;
  map<double, vector<pair<int, int>>> m;
  double x[n], y[n];
  for (int i = 0; i < n; i++) cin >> x[i] >> y[i];
  int ans = 0;
  for (int i = 0; i < n; i++)
    for (int j = i + 1; j < n; j++) {
      double slope = (x[i] - x[j]) / (y[i] - y[j]);
      if (y[i] == y[j]) slope = (1.0 / 0.0);
      if (x[i] == x[j]) slope = 0;
      m[slope].push_back({i, j});
      if (debug) cout << slope << "\n";
    }
  for (auto v : m) {
    for (int i = 0; i < v.second.size(); i++)
      for (int j = i + 1; j < v.second.size(); j++) {
        if (debug) cout << v.first << ":" << v.second.size() << "\n";
        double x1 = x[v.second[i].first], y1 = y[v.second[i].first],
               x2 = x[v.second[j].first], y2 = y[v.second[j].first],
               x3 = x[v.second[i].second], y3 = y[v.second[i].second],
               x4 = x[v.second[j].second], y4 = y[v.second[j].second];
        if (debug)
          cout << x1 << "," << y1 << ";" << x2 << "," << y2 << ";" << x3 << ","
               << y3 << ";" << x4 << "," << y4 << "\n";
        if ((x1 - x2) / (y1 - y2) == (x3 - x4) / (y3 - y4))
          ans++;
        else if ((x1 - x4) / (y1 - y4) == (x3 - x2) / (y3 - y2))
          ans++;
      }
  }
  cout << ans / 2;
}
