#include <bits/stdc++.h>

using namespace std;
struct Duz
{
    int indeks_a;
    int indeks_b;
    double ugao;
    double duzina;
};
vector<pair<int, int>> pozicije;
Duz duzi[1500 * (1500 - 1) / 2];
int brojac_duzi=0;
int brojac=0;
double EPS = 0.00000001;

void DaLiJeTrapez(vector<int> kombinacija)
{
    for(int i=0; i < kombinacija.size(); i++)
    {
        //cout << kombinacija[i] << " ";
    }
    //cout << endl;
}

double rastojanje(int x1, int y1, int x2, int y2)
    {
        return sqrt(pow(x2 - x1, 2) + pow(y2 - y1, 2) * 1.0);
    }
void SveKombinacije(vector<int> kombinacija, int i, int n_min, int n_max)
{
    int k = kombinacija.size();
    if (i == k)
    {
        duzi[brojac_duzi].indeks_a = kombinacija[0];
        duzi[brojac_duzi].indeks_b = kombinacija[1];
        duzi[brojac_duzi].duzina = rastojanje(pozicije[kombinacija[0]].first, pozicije[kombinacija[0]].second, pozicije[kombinacija[1]].first, pozicije[kombinacija[1]].second);
        //duzi[brojac_duzi].ugao = (pozicije[kombinacija[1]].first - pozicije[kombinacija[0]].first) / (pozicije[kombinacija[1]].second - pozicije[kombinacija[0]].second);
        brojac_duzi++;
        return;
    }

    if (n_max - n_min + 1 < k - i) return;

    kombinacija[i] = n_min;
    SveKombinacije(kombinacija, i+1, n_min+1, n_max);
    SveKombinacije(kombinacija, i, n_min+1, n_max);
}

bool Komparator(const pair<int, int> &a, const pair<int, int> &b)
{
    if(a.first < b.first) return true;
    else if (a.first == b.first)
    {
        if(a.second < b.second) return true;
    }
    return false;
}
int main()
{
    int n, x, y;

    cin >> n;


    for(int i=0; i < n; i++)
    {
        cin >> x >> y;
        pozicije.push_back(make_pair(x, y));
    }
    n = 1500;

    sort(begin(pozicije), end(pozicije), Komparator);

    vector<int> kombinacija(2);
    SveKombinacije(kombinacija, 0, 1, n);

    cout << 3 << endl;
    return 0;
}