#include<bits/stdc++.h>
using namespace std;
#define MAX 1000006
int a[MAX];
typedef long long ll;
int main()
{
int n,ans=0;
cin>>n;
for(int i=1; i<=n; i++)cin>>a[i];
for(int i=1; i<=n; i++)
{
int temp=a[i],ji=1//注意初始为一组;
while(temp!=-1)//不断找“爹”
{
ji++;
temp=a[temp];
}ans=max(ans,ji);//找最大深度
}
cout<<ans;
}