#include<cstdio>
#include<algorithm>
using namespace std;
const int MAXN=1e6+5;
int n,ans;
int Lc,Rc,depth[MAXN],fa[MAXN];
int Getdepth(const int &a)
{
if(depth[a]>0) return depth[a];
depth[a]=Getdepth(fa[a])+1;
return -1;
}
int main()
{
scanf("%d",&n);
for(int i=1;i<=n;++i)
{
scanf("%d%d",&Lc,&Rc);
fa[Lc]=i,fa[Rc]=i;
}
depth[1]=1;
for(int i=1;i<=n;++i)
{
Getdepth(i);
ans=max(depth[i],ans);
}
printf("%d",ans);
return 0;
}
#2WA,用的父亲表示法,节点的深度为父亲深度+1