using System;
using System.Collections.Generic;
using System.Linq;

namespace prepisivaci
{
    public class Program
    {
        public static void Main(string[] args)
        {
            int N = int.Parse(Console.ReadLine());
            var tak = new List<Takmicar>(N);
            int brprepisivaca = 0;
            for(int i = 0; i < N; i++)
            {
                string unos = Console.ReadLine();
                int x = int.Parse(unos.Split(' ')[0]);
                int y = int.Parse(unos.Split(' ')[1]);
                tak.Add(new Takmicar(x, y));
            }
            foreach (Takmicar ta in tak)
                {

            }
            for (int i = 0; i < N - 3; i++)
            {
                int k = i + 2;
                int j = i + 1;
                int l = i + 3;
                if (dalijetrapez(tak[i].x, tak[i].y, tak[j].x, tak[j].y, tak[k].x, tak[k].y, tak[l].x, tak[l].y))
                {
                    brprepisivaca++;
                    continue;
                }
                for ( j = 0; j < N - 3; j++)
                {
                    if (dalijetrapez(tak[i].x, tak[i].y, tak[j].x, tak[j].y, tak[k].x, tak[k].y, tak[l].x, tak[l].y))
                    {
                        brprepisivaca++;
                        continue;
                    }
                }
                for (k = 0; k < N - 3; k++)
                {
                    if (dalijetrapez(tak[i].x, tak[i].y, tak[j].x, tak[j].y, tak[k].x, tak[k].y, tak[l].x, tak[l].y))
                    {
                        brprepisivaca++;
                        continue;
                    }
                }
                for (l = 0; l < N - 3; l++)
                {
                    if (dalijetrapez(tak[i].x, tak[i].y, tak[j].x, tak[j].y, tak[k].x, tak[k].y, tak[l].x, tak[l].y))
                    {
                        brprepisivaca++;
                        continue;
                    }
                }
            }
            Console.WriteLine(brprepisivaca);           
        }


        static bool dalijetrapez(double x1, double y1, double x2, double y2, double x3, double y3, double x4, double y4)
        {
            if(m(x1, y1, x2, y2) == m(x3, y3, x4, y4))
            {
                return true;

            }else if(m(x1, y1, x2, y2) == m(x4, y4, x3, y3))
            {
                return true;
            }
            else if (m(x1, y1, x3, y3) == m(x2, y2, x4, y4))
            {
                return true;
            }
            else if (m(x1, y1, x3, y3) == m(x4, y4, x2, y2))
            {
                return true;
            }
            else if (m(x1, y1, x4, y4) == m(x2, y2, x3, y3))
            {
                return true;
            }
            else if (m(x1, y1, x4, y4) == m(x3, y3, x2, y2))
            {
                return true;
            }
            else if (m(x2, y2, x1, y1) == m(x3, y3, x4, y4))
            {
                return true;
            }
            else if (m(x2, y2, x1, y1) == m(x4, y4, x3, y3))
            {
                return true;
            }
            else if (m(x2, y2, x3, y3) == m(x1, y1, x4, y4))
            {
                return true;
            }
            else if (m(x2, y2, x3, y3) == m(x4, y4, x1, y1))
            {
                return true;
            }
            else if (m(x2, y2, x4, y4) == m(x1, y1, x3, y3))
            {
                return true;
            }
            else if (m(x2, y2, x4, y4) == m(x3, y3, x1, y1))
            {
                return true;
            }
            else if (m(x3, y3, x1, y1) == m(x2, y2, x4, y4))
            {
                return true;
            }
            else if (m(x3, y3, x1, y1) == m(x4, y4, x2, y2))
            {
                return true;
            }
            else if (m(x3, y3, x2, y2) == m(x1, y1, x4, y4))
            {
                return true;
            }
            else if (m(x3, y3, x2, y2) == m(x4, y4, x1, y1))
            {
                return true;
            }
            else if (m(x3, y3, x4, y4) == m(x1, y1, x2, y2))
            {
                return true;
            }
            else if (m(x3, y3, x4, y4) == m(x2, y2, x1, y1))
            {
                return true;
            }
            else if (m(x4, y4, x1, y1) == m(x2, y2, x3, y3))
            {
                return true;
            }
            else if (m(x4, y4, x1, y1) == m(x3, y3, x2, y2))
            {
                return true;
            }
            else if (m(x4, y4, x2, y2) == m(x1, y1, x3, y3))
            {
                return true;
            }
            else if (m(x4, y4, x2, y2) == m(x3, y3, x1, y1))
            {
                return true;
            }
            else if (m(x4, y4, x3, y3) == m(x1, y1, x2, y2))
            {
                return true;
            }
            else if (m(x4, y4, x3, y3) == m(x2, y2, x1, y1))
            {
                return true;
            }
            return false;
        }
        static double m(double x1, double y1, double x2, double y2)
        {
            double m1;
            double m2 = y2 - y1;
            double m3 = x2 - x1;
                
            m1 = m2 / m3;
            return m1;
        }
    }

    class Takmicar
    {
        public int x, y;

        public Takmicar(int a, int b)
        {
            x = a; y = b;
        }
    }
}