using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace takmicenje2krugzad3
{
    class Program
    {
        static bool praznaKolona(bool[,] a,int n,int k)
        {
            bool prazno = true;
            for(int i=0;i<n;i++)
            {
                if (a[i, k]) prazno = false;
            }
            return prazno;
        }
        static bool praznaVrsta(bool[,] a, int n, int v)
        {
            bool prazno = true;
            for (int i = 0; i < n; i++)
            {
                if (a[v, i]) prazno = false;
            }
            return prazno;
        }
        static void Main(string[] args)
        {
            int n = int.Parse(Console.ReadLine());
            bool[,] tabla = new bool[n, n];
            for(int i=0;i<n;i++)
            {
                string[] s = Console.ReadLine().Split(' ');
                tabla[Convert.ToInt32(s[0]) - 1, Convert.ToInt32(s[1]) - 1] = true;
            }
            int BrojPraznihVrsta = 0;
            int BrojPraznihKolona = 0;
            for(int i=0;i<n;i++)
            {
                if (praznaKolona(tabla, n, i)) BrojPraznihKolona++;
                if (praznaVrsta(tabla, n, i)) BrojPraznihVrsta++;
            }
            Console.WriteLine(Math.Max(BrojPraznihVrsta, BrojPraznihKolona));
            
        }
    }
}