#include<bits/stdc++.h>
using namespace std;
const int N = 10e6+5;
typedef struct node
{
int lchild;
int rchild;
}treelist;
int d,d1=1,d2=1;
treelist tree[N];
void dfs(int i)
{
if(tree[i].lchild != 0)
dfs(tree[i].lchild),d1++;
if(tree[i].rchild != 0)
dfs(tree[i].rchild),d2++;
d = max(d1,d2);
}
int main()
{
int n,i;
cin>>n;
for(i = 1;i <= n; i++)
{
cin>>tree[i].lchild>>tree[i].rchild;
}
dfs(1);
cout<<d;
return 0;
}