#include <iostream>
#include <vector>

#define show(x) cerr << #x << " = " << x << endl

using namespace std;
using ll = long long;
using P = pair<ll, ll>;

template <typename T>
ostream& operator<<(ostream& os, const vector<T>& v)
{
    os << "sz:" << v.size() << "\n[";
    for (const auto& p : v) {
        os << p << ",";
    }
    os << "]\n";
    return os;
}

template <typename S, typename T>
ostream& operator<<(ostream& os, const pair<S, T>& p)
{
    os << "(" << p.first << "," << p.second
       << ")";
    return os;
}


bool parallel(const pair<P, P>& l1, const pair<P, P>& l2)
{
    const ll dx1 = l1.first.first - l1.second.first;
    const ll dx2 = l2.first.first - l2.second.first;
    const ll dy1 = l1.first.second - l1.second.second;
    const ll dy2 = l2.first.second - l2.second.second;
    return dx2 * dy1 == dx1 * dy2;
}

int m;
ll rec(const ll used, const vector<ll>& x, const vector<ll>& y, vector<pair<P, P>>& pairs)
{
    if (pairs.size() == m / 2) {
        ll sum = 0;
        //        show(pairs);
        const int size = pairs.size();
        for (int i = 0; i < size; i++) {
            for (int j = i + 1; j < size; j++) {
                if (parallel(pairs[i], pairs[j])) {
                    sum++;
                }
            }
        }
        return sum;
    } else {
        int head = 0;
        for (head = 0; head < m; head++) {
            if ((used & (1LL << head)) == 0) {
                break;
            }
        }
        ll maxi = 0;
        for (int i = head + 1; i < m; i++) {
            vector<pair<P, P>> p = pairs;
            if ((used & (1LL << i)) == 0) {
                p.push_back(make_pair(make_pair(x[head], y[head]), make_pair(x[i], y[i])));
                maxi = max(maxi, rec(used | (1LL << head) | (1LL << i), x, y, p));
            }
        }
        return maxi;
    }
}

int main()
{
    cin >> m;
    vector<ll> x(m);
    vector<ll> y(m);
    for (int i = 0; i < m; i++) {
        cin >> x[i] >> y[i];
    }
    vector<pair<P, P>> pairs;
    cout << rec(0, x, y, pairs) << endl;

    return 0;
}