#include<bits/stdc++.h>
using namespace std;
int g[10000][10000],n,leaf[100005],cnt=0,MAX=-10086;
int main()
{
cin>>n;
for(int i=1;i<=n;i++) for(int j=1;j<=n;j++) g[i][j]=0x7fffff;
for(int i=1;i<=n;i++){
int l,r;
cin>>l>>r;
g[i][l]=1;
g[i][r]=1;
if(l==0&&r==0) leaf[++cnt]=i;
}
for(int k=1;k<=n;k++) for(int i=1;i<=n;i++) for(int j=1;j<=n;j++) g[i][j]=min(g[i][j],g[i][k]+g[k][j]);
for(int i=1;i<=cnt;i++) MAX=max(MAX,g[1][leaf[i]]);
cout<<MAX+1;
}