#include<stdio.h>
#define MAX 60
 a[MAX][MAX]={0},br[MAX]={0},used[MAX];
 void rec(int i);

int main()
{
 int i,j,n,k,broi=0,flag=0,iz[MAX]={0},tmp1,tmp2,izp[MAX]={0},max=0,kor,fl=0;

 scanf("%d",&n);
		   max=0;
 for(i=0;i<n;i++)
  {
   scanf("%d %d",&tmp1,&tmp2);
   k=br[tmp1];
   a[tmp1][k]=tmp2; br[tmp1]++;
   iz[tmp1]=1;  if(max<tmp1) max=tmp1;
   izp[tmp2]++; if(max<tmp2) max=tmp2;
  }
   flag=0;
 for(i=0;i<max;i++)
  {
	if(flag) break;
   for(j=0;j<max;j++)
	{
	 used[j]=0;
	}
   if(izp[i]) continue;
   else if(iz[i]){
	rec(i);
	 fl=0;
   for(j=0;j<=max;j++)
	{
	 if(used[j]>=2) { fl=1; break; }
	}
   if(!fl) { kor=i; flag=1;}
  }
 }
   if(!flag)  printf("0 0");
   else
  {
 for(i=0;i<=max;i++)
  {
   if (izp[i] || iz[i]) { broi++; }
  }

 printf("%d %d",broi,kor);
 }
return 0;
}
   void rec(int i)
    {  int j;
     used[i]++;
     for(j=0;j<br[i];j++)
      {
       rec(a[i][j]);
      }
    }

