#include<bits/stdc++.h> using namespace std; struct node{ int l, r; }a[1000005]; int dp[1000005]; int n; int main(){ cin>>n; for(int i=1;i<=n;i++) cin>>a[i].l>>a[i].r; for(int i=n;i>=1;i--) dp[i]=max(dp[a[i].l], dp[a[i].r])+1; cout<<dp[1]; }