using System;

namespace Prepisivaci
{
    class Program
    {
        struct Tacke
        {
            public int x;
            public int y;
        }
        struct Prave
        {
            public Tacke prva_t;
            public Tacke druga_t;
        }
        static int Kombinacije(Tacke[] niz,Prave[] a)
        {
            int br = 0;
            for(int i=0;i<niz.Length-1;i++)
            {
                for(int j=i;j<niz.Length; j++)
                {
                    if(niz[j].x== niz[i].x || niz[j].y == niz[i].y || Math.Abs(niz[j].x -niz[i].x)== Math.Abs(niz[j].y - niz[i].y))
                    {
                        a[i].prva_t = niz[i];
                        a[i].druga_t = niz[j];
                    }
                }
            }
            for(int i=0;i<a.Length-1;i++)
            {
                for (int j = i; i < a.Length; j++)
                {
                    if (Math.Abs(a[i].prva_t.x - a[j].prva_t.x) == 2 * Math.Abs(a[i].druga_t.x - a[j].druga_t.x)) br++;
                    else if (Math.Abs(a[i].prva_t.y - a[j].prva_t.y) == 2 * Math.Abs(a[i].druga_t.y - a[j].druga_t.y)) br++;
                    else if (Math.Abs(a[i].prva_t.x - a[j].prva_t.x)*Math.Sqrt(2) == 2 * Math.Abs(a[i].druga_t.x - a[j].druga_t.x) * Math.Sqrt(2)) br++;
                }
            }
            return br;
        }
        static void Main(string[] args)
        {
            int n = Convert.ToInt32(Console.ReadLine());
            Tacke[] niz = new Tacke[n];
            string[] s;
            for(int i=0;i<n;i++)
            {
                s = Console.ReadLine().Split();
                niz[i].x = Convert.ToInt32(s[0]);
                niz[i].y = Convert.ToInt32(s[1]);
            }
            Prave[] a = new Prave[n^2];
            Console.WriteLine(Kombinacije(niz, a));
            
        }
    }
}