#include <iostream>
#include<iomanip>
#include<math.h>
using namespace std;
int godog(int a[],int b,int n) {
int num = n;
int sum = 0;
int flag = 0;
while (num--) {
if (a[b] != 0) {
sum++;
b = a[b];
}
else {
sum++;
flag = 1;
break;
}
}
if (flag == 1)return sum;
else return -1;
}
int main() {
int n;
while (cin >> n) {
int* a = new int[n+1];
int* b = new int[n+1];
for (int i = 1; i <= n; i++) {
cin >> a[i];
b[i] = -1;
}
int max = 1;
int p = 1;
for (int i = 1; i <= n; i++) {
if (a[i] != 0)b[p++] = i;
}
for (int i = 1; i <= n; i++) {
if (b[i] != -1) {
p = godog(a, b[i], n);
if (p > max)max = p;
}
}
cout << max << endl;
}
return 0;
}