using System;
using System.Collections.Generic;

public class Polica
{
	public static void Main()
	{
		int n = Convert.ToInt32(Console.ReadLine());
		int z=0;
		bool[,] a = new bool[n+1,n+1];
		int[] b = new int[2];
		for(int i=0; i<n; i++)
		{
			b = Translate();
			a[b[0]-1 , b[1]-1] = true;
		}
		for(int ii=0; ii<n; ii++)
		{
			int c=0;
			for(int i=0; i<n; i++)
			{
				if(a[i,ii]==true)
				{
					c++;
					if(c==2)
					{
						for(int y=0; y<n; y++)
						{
							bool move = true;
							for(int x=0; x<n; x++)
							{	
								if(a[x,y]!=false)
								{
									move=false;
									x=n;
								}
							}
							if(move==true)
							{
								a[i,ii]=false;
								a[i,y]=true;
								c--;
								z++;
							}
						}
					}
				}
			}
		}

		for(int i=0; i<n; i++)
		{
			int c=0;
			for(int ii=0; ii<n; ii++)
			{
				if(a[i,ii]==true)
				{
					c++;
					if(c==2)
					{
						for(int x=0; x<n; x++)
						{
							bool move = true;
							for(int y=0; y<n; y++)
							{	
								if(a[x,y]!=false)
								{
									move=false;
									y=n;
								}
							}
							if(move==true)
							{
								a[i,ii]=false;
								a[x,ii]=true;
								c--;
								z++;
							}
						}
					}
				}
			}
		}

		Console.WriteLine(z);
	}

	public static int[] Translate()
	{
		return Array.ConvertAll<string, int>(Console.ReadLine().Split(' '), int.Parse);
	}
}