#include <bits/stdc++.h>

using namespace std;

int P[101010];
vector <int> V[101010];
int n, ans;

int f(int p)
{
	vector <int> K;
	int i, ret;
	
	ret = V[p].size();
	
	for(i=0;i<V[p].size();i++){
		K.push_back(-f(V[p][i]));
	}
	
	sort(K.begin(), K.end());
	
	for(i=0;i<K.size();i++){
		ret = max(ret, i-K[i]+1);
	}
	
	return ret;
}

int main()
{
	int i;
	
	scanf("%d", &n);
	
	for(i=2;i<=n;i++){
		scanf("%d", P+i);
		V[P[i]].push_back(i);
	}
	
	printf("%d\n", f(1));
	
	return 0;
}