9
3 4 2 5 3 8 4 6 9
4
#include <bits/stdc++.h>
using namespace std;
const int N = 1e5 + 10;
int p[N], n, res;
int dfs(int u, int cnt, int root){
if (cnt > n) return 0;
if (p[u] == root) return cnt;
return dfs(p[u], cnt + 1, root);
}
int main(){
cin >> n;
for (int i = 1; i <= n; i++) cin >> p[i];
for (int i = 1; i <= n; i++) {
int u = dfs(i, 1, i);
if(u) res = max(res, u);
}
cout << res << endl;
return 0;
}