#include<bits/stdc++.h>
using namespace std;
struct tree
{
int me,dad,c,id,did;
}a[105];
int n,t[105];
int main()
{
cin>>n;
for(int i=1;i<=n;++i)
{
cin>>a[i].me>>a[i].dad;
a[i].id=i;
if(a[i].dad==0)a[i].c=1;
else
{
for(int j=1;j<=i;++j)
{
if(a[j].me==a[i].dad)
{
a[i].did=j;
break;
}
}
a[i].c=a[a[i].did].c+1;
}
t[a[i].c]++;
}
int maxn=0,ans=0;
for(int i=1;i<=n;++i)
{
maxn=max(t[i],maxn);
if(t[i]!=0)ans=i;
else break;
}
cout<<ans<<" "<<maxn;
return 0;
}