#include <bits/stdc++.h>
using namespace std;
long long n, m, mx, p;
vector<long long> verr[10001], ans;
void Rec(long long x, long long h) {
  mx = max(mx, h);
  for (int i = 0; i < verr[x].size(); i++) Rec(verr[x][i], h + 1);
}
int main() {
  cin.tie(NULL);
  cout.tie(NULL);
  cin >> n;
  int i, j;
  for (i = 1; i <= n; i++) {
    cin >> p;
    if (p != -1)
      verr[p].push_back(i);
    else
      ans.push_back(i);
  }
  for (i = 0; i < ans.size(); i++) Rec(ans[i], 1);
  cout << mx;
}
