using System;

namespace fORMACIJA
{
    class Program
    {
        public static double povrsina(double x1, double y1, double x2, double y2, double x3, double y3)
        {
            return Math.Abs((x1 * (y2 - y3) + x2 * (y3 - y1) + x3 * (y1 - y2)) / 2.0);
        }
        static void Main(string[] args)
        {
            int N;
            string red;
            N = int.Parse(Console.ReadLine());
            int[,] tacke = new int[N, 2];
            int[][] kombinacije = new int[7][];
            kombinacije[0] = new int[3]{0,1,2};
            kombinacije[1] = new int[2] {0, 1};
            kombinacije[2] = new int[2] { 0, 2 };
            kombinacije[3] = new int[2] {1, 2};
            kombinacije[4] = new int[1] {0};
            kombinacije[5] = new int[1] { 1 };
            kombinacije[6] = new int[1] { 2 };
            for (int i = 0; i < N; i++)
            {
                red = Console.ReadLine();
                tacke[i, 0] = int.Parse(red.Split(' ')[0]);
                tacke[i, 1] = int.Parse(red.Split(' ')[1]);
            }
            int count = 0;
            for(int i = 0; i< 7; i++)
            {
                if(kombinacije[i].Length == 1)
                {
                    if (tacke[kombinacije[i][0], 0] == 0 && tacke[kombinacije[i][0], 1] == 0)
                        count++;
                }else if(kombinacije[i].Length == 2)
                {
                    int x1 = tacke[kombinacije[i][0], 0];
                    int y1 = tacke[kombinacije[i][0], 1];
                    int x2 = tacke[kombinacije[i][1], 0];
                    int y2 = tacke[kombinacije[i][1], 1];
                    if (x1 - x2 != 0)
                    {
                        double k = (double)((y1 - y2) / (x1 - x2));
                        double n = (double)((y1 + y2 - x1 * k - x2 * k) / 2);
                        if (n == 0)
                        {
                            count++;
                        }
                    }
                }else{
                    int x1 = tacke[kombinacije[i][0], 0];
                    int y1 = tacke[kombinacije[i][0], 1];
                    int x2 = tacke[kombinacije[i][1], 0];
                    int y2 = tacke[kombinacije[i][1], 1];
                    int x3 = tacke[kombinacije[i][2], 0];
                    int y3 = tacke[kombinacije[i][2], 1];
                    double P = povrsina(x1, y1, x2, y2, x3, y3);
                    double P1 = povrsina(0, 0, x2, y2, x3, y3);
                    double P2 = povrsina(x1, y1, 0, 0, x3, y3);
                    double P3 = povrsina(x1, y1, x2, y2, 0, 0);
                    if (P == P1 + P2 + P3)
                    {
                        count++;
                    }


                }
            }
            Console.WriteLine(count);
        }
    }
}