#include <bits/stdc++.h>
using namespace std;
int n;
int son[2][1001000];
int l1=1,r1=1;
int depth(int u){
if(son[0][u]) l1= depth(son[0][u])+1;
if(son[1][u]) r1= depth(son[1][u])+1;
return max(l1,r1);
}
int main(){
cin>>n;
for(int i=1;i<=n;i++)
{
int l,r;
cin>>l>>r;
if(l) son[0][i]=l;
if(r) son[1][i]=r;
}
cout<<depth(1);
return 0;
}