#include <iostream>
using namespace std;
#include<string>
#include<cmath>
#include<algorithm>



 static void merge(double arr[], int l, int m, int r,int p[],int p2[])
        {
           
            int n1 = m - l + 1;
            int n2 = r - m;

           
            double L[n1];
            int L1[n1];
             int L2[n1];
            double R[n2];
            int R1[n2];
            int R2[n2];
            int i, j;


            for (i = 0; i < n1; ++i)
            {

                L1[i] = p[l + i];
                L2[i] = p2[l + i];
                L[i] = arr[l + i];
            }
            for (j = 0; j < n2; ++j)
            {
                R[j] = arr[m + 1 + j];
                R1[j] = p[m + 1 + j];
                 R2[j] = p2[m + 1 + j];
            }
            i = 0;
            j = 0;

           
            int k = l;
            while (i < n1 && j < n2)
            {
                if (L[i] <= R[j])
                {
                    arr[k] = L[i];
                    p[k] = L1[i];
                    p2[k] = L2[i];
                    i++;
                }
                else
                {
                    arr[k] = R[j];
                    p[k] = R1[j];
                    p2[k] = R2[j];
                    j++;
                }
                k++;
            }

         
            while (i < n1)
            {
                arr[k] = L[i];
                p[k] = L1[i];
                 p2[k] = L2[i];
                i++;
                k++;
            }

         
            while (j < n2)
            {
                arr[k] = R[j];
                p[k] = R1[j];
                p2[k] = R2[j];
                j++;
                k++;
            }
        }

 static void sort(double arr[], int l, int r,int p[],int p2[])
        {
            if (l < r)
            {
               
                int m = l + (r - l) / 2;

           
                sort(arr, l, m,p,p2);
                sort(arr, m + 1, r,p,p2);

               
                merge(arr, l, m, r,p,p2);
            }
        }


static double vratik(double x1,double y1,double x2,double y2)
{
	if(x1-x2==0)
	return 69.99;
	

	return ((y2-y1)/(x2-x1));
}


int main(int argc, char** argv)
 {
 	ios_base::sync_with_stdio(false);
cin.tie(NULL); 

     int n;
     cin>>n;
     
     double x[n];
     double y[n];
     
     
     for(int i=0;i<n;i++)
	 {
	 	cin>>x[i]>>y[i];
	 }
	 int b=0;
	 double k[n*n];
	 int s1[n*n];
	 int s2[n*n];
	 for(int i=0;i<n;i++)
	 {
	 	for(int j=i+1;j<n;j++)
		 {
		 	double t=vratik(x[i],y[i],x[j],y[j]);
		 	if(t==-0)
		 	t=0;
		 	k[b]=t;
		 	
		 	s1[b]=(i);
		 	s2[b]=(j);
		 	
		 	b++;
		 }
	 }
	  
	 sort(k,0,b-1,s1,s2);
	 
	 
	 
	 int resenje=0;
	 for(int i=0;i<b-1;i++)
	 {
	 	if(k[i]==k[i+1])
		 {
		 	
		 	
		 	resenje++;
		 	
		 	
		    
		 }
	 }
	 
	 cout<<resenje;
	 
	 
	 
	 
	 
	 
	 
	 
  
   
  
}