#include <iostream>
#include <math.h>
using namespace std;

class polovine
{
public:
    int x1,y1,x2,y2,x3,y3,x4,y4;
    double duzina1,duzina2,presecanje,o1,o2,o3,o4;
};

class duz
{
public:
    signed int x1,y1,x2,y2;
    double duzina;
};
int orientacija(int x1,int y1, int x2, int y2, int x3, int y3)
{
    double orint = (y2 - y1) * (x3 - x2) - (x2 - x1) * (y3 - y2);
    if (orint == 0) return 0;
    return (orint > 0)? 1: 2;
}
bool naSegmentu(int x1,int y1, int x2, int y2, int x3, int y3)
{
    if (x2 <= max(x1, x3) && x2 >= min(x1, x3) && y2 <= max(y1, y3) && y2 >= min(y1, y3))
        return true;
    return false;
}

int main()
{
    int n,brojac=0;
    cin>>n;
    duz duzi[n];
    polovine pol[n/2+1];
    int x[n];
    int y[n];
    for(int i=0; i<n; i++)
    {
        cin>>x[i]>>y[i];
    }

    if(n<4)
    {
        cout<<0;
    }
    else
    {
        for(int i=0; i<n-1; i++)
        {
            for(int j=i+1; j<n; j++)
            {
                duzi[brojac].x1=x[i];
                duzi[brojac].y1=y[i];
                duzi[brojac].x2=x[j];
                duzi[brojac].y2=y[j];
                if(x[i]==x[j])
                {
                    duzi[brojac].duzina=abs(y[i]-y[j]);
                    brojac++;
                }
                if(y[i]==y[j])
                {
                    duzi[brojac].duzina=abs(x[i]-x[j]);
                    brojac++;
                }
                else
                {
                    duzi[brojac].duzina=sqrt(pow(x[j]-x[i], 2) +pow(y[j]-y[i], 2));
                    brojac++;
                }
            }
        }
        for(int i=0; i<n-1; i++)
        {
            for(int j=i+1; j<n; j++)
            {
                if(duzi[i].x1==duzi[j].x1&&duzi[i].y1==duzi[j].y1)
                {
                    duzi[i].duzina=0;
                }
                if(duzi[i].x1==duzi[j].x2&&duzi[i].y1==duzi[j].y2)
                {
                    duzi[i].duzina=0;
                }
            }
        }
        brojac=0;
        for(int i=0; i<n; i++)
        {
            for(int j=0; j<n; j++)
            {
                if(duzi[i].duzina/2==duzi[j].duzina&&duzi[i].duzina!=0)
                {
                    pol[brojac].duzina1=duzi[i].duzina;
                    pol[brojac].x1=duzi[i].x1;
                    pol[brojac].x2=duzi[i].x2;
                    pol[brojac].y1=duzi[i].y1;
                    pol[brojac].y2=duzi[i].y2;
                    pol[brojac].duzina2=duzi[j].duzina;
                    pol[brojac].x3=duzi[j].x1;
                    pol[brojac].x4=duzi[j].x2;
                    pol[brojac].y3=duzi[j].y1;
                    pol[brojac].y4=duzi[j].y2;
                }
            }
        }
        brojac=0;
        for(int i=0; i<n/2+1; i++)
        {
            pol[i].o1=orientacija(pol[i].x1,pol[i].y1,pol[i].x2,pol[i].y2,pol[i].x3,pol[i].y3);
            pol[i].o2=orientacija(pol[i].x1,pol[i].y1,pol[i].x2,pol[i].y2,pol[i].x4,pol[i].y4);
            pol[i].o3=orientacija(pol[i].x3,pol[i].y3,pol[i].x4,pol[i].y4,pol[i].x1,pol[i].y1);
            pol[i].o4=orientacija(pol[i].x3,pol[i].y3,pol[i].x4,pol[i].y4,pol[i].x2,pol[i].y2);
            if(pol[i].o1!=pol[i].o2&&pol[i].o3!=pol[i].o4)
            {
                pol[i].presecanje=1;
            }
            else if (pol[i].o1 == 0 && naSegmentu(pol[i].x1,pol[i].y1,pol[i].x3,pol[i].y3,pol[i].x2,pol[i].y2))
                pol[i].presecanje=1;
            else if (pol[i].o2 == 0 && naSegmentu(pol[i].x1,pol[i].y1,pol[i].x4,pol[i].y4,pol[i].x2,pol[i].y2))
                pol[i].presecanje=1;
            else if (pol[i].o3 == 0 && naSegmentu(pol[i].x3,pol[i].y3,pol[i].x1,pol[i].y1,pol[i].x4,pol[i].y4))
                pol[i].presecanje=1;
            else if (pol[i].o4 == 0 && naSegmentu(pol[i].x3,pol[i].y3,pol[i].x2,pol[i].y2,pol[i].x4,pol[i].y4))
                pol[i].presecanje=1;
            else
            {
                pol[i].presecanje=0;
            }

        }
        brojac=0;
        for(int i=0; i<n; i++)
        {
            cout<<" x1: "<<duzi[i].x1<<" y1: "<<duzi[i].y1<<" x2 "<<duzi[i].x2<<" y2 "<<duzi[i].y2<<endl;
        }
        cout<<brojac;
    }
}