#include <bits/stdc++.h>
int main() {
  int n, i;
  int otac[2000] = {0};
  int djece[2000] = {0};
  int max;
  scanf("%d", &n);
  for (i = 0; i < n; i++) {
    scanf("%d", &otac[i]);
    otac[i]--;
    if (otac[i] >= 0) djece[otac[i]]++;
  }
  max = 0;
  for (i = 0; i < n; i++) {
    int j, q;
    if (djece[i]) continue;
    for (q = 0, j = i; j >= 0; j = otac[j], q++)
      ;
    if (q > max) max = q;
  }
  printf("%d\n", max);
  return 0;
}
