import java.util.*;
import java.lang.*;
import java.math.*;
import java.io.*;

import static java.lang.Math.*;
import static java.util.Arrays.*;

public class A{
	Scanner sc=new Scanner(System.in);

	int INF=1<<28;
	double EPS=1e-9;

	int n;
	int[] p;

	void run(){
		n=sc.nextInt();
		p=new int[n];
		for(int i=0; i<n; i++){
			p[i]=sc.nextInt();
			if(p[i]>0){
				p[i]--;
			}
		}
		int ans=0;
		for(int i=0; i<n; i++){
			int c=0;
			for(int v=i; v>=0; v=p[v]){
				c++;
			}
			ans=max(ans, c);
		}
		println(ans+"");
	}

	void println(String s){
		System.out.println(s);
	}

	void print(String s){
		System.out.print(s);
	}

	void debug(Object... os){
		System.err.println(Arrays.deepToString(os));
	}

	public static void main(String[] args){
		new A().run();
	}
}