using System;

namespace Takmicenje_3._godina_3._zadatak
{
    class Program
    {
        struct Tacka
        {
            public int x;
            public int y;
        }
        static double Rastojanje(Tacka a, Tacka b)
        {
            return Math.Sqrt((a.x - b.x) * (a.x - b.x) + (a.y - b.y) * (a.y - b.y));
        }
        static int BrojSus(int[] kombinacija, int n, Tacka[] niz)
        {
            bool t = DobraKombinacija(niz[kombinacija[0]], niz[kombinacija[1]], niz[kombinacija[2]], niz[kombinacija[3]]);
            for (int i = kombinacija.Length - 1; i >= 0; i--)
            {
                if (kombinacija[i] < n - (kombinacija.Length - i - 1))
                {
                    kombinacija[i]++;
                    for (int j = i; j < kombinacija.Length - 1; j++)
                    {
                        kombinacija[j + 1] = kombinacija[j] + 1;
                    }
                    return (t ? 1 : 0) + BrojSus(kombinacija, n, niz);
                }
            }
            return t ? 1 : 0;
        }
        static bool DobraKombinacija(Tacka a, Tacka b, Tacka a1, Tacka b1)
        {
            if (Math.Abs((a.x - b.x) / Rastojanje(a, b)) == Math.Abs((a1.x - b1.x) / Rastojanje(a1, b1)) && (Rastojanje(a, b) / Rastojanje(a1, b1) == 2 || Rastojanje(a1, b1) / Rastojanje(a, b) == 2))
            {
                return true;
            }
            else if (Math.Abs((a.x - a1.x) / Rastojanje(a, a1)) == Math.Abs((b.x - b1.x) / Rastojanje(b, b1)) && (Rastojanje(a, a1) / Rastojanje(b, b1) == 2 || Rastojanje(b, b1) / Rastojanje(a, a1) == 2))
            {
                return true;
            }
            else if (Math.Abs((a.x - b1.x) / Rastojanje(a, b1)) == Math.Abs((b.x - a1.x) / Rastojanje(b, a1)) && (Rastojanje(a, b1) / Rastojanje(a1, b) == 2 || Rastojanje(a1, b) / Rastojanje(a, b1) == 2))
            {
                return true;
            }
            else
            {
                return false;
            }
        }
        static void Main(string[] args)
        {
            int n = Convert.ToInt32(Console.ReadLine());
            string[] red;
            Tacka[] niz = new Tacka[n];
            for(int i = 0; i < n; i++)
            {
                red = Console.ReadLine().Split();
                niz[i].x = Convert.ToInt32(red[0]);
                niz[i].y = Convert.ToInt32(red[1]);
            }
            if (n < 4)
            {
                Console.WriteLine(0);
                return;
            }
            int[] kombinacija = new int[4];
            for(int i = 0; i < 4; i++)
            {
                kombinacija[i] = i;
            }
            Console.WriteLine(BrojSus(kombinacija, n - 1, niz));
        }
    }
}