
#include<iostream>
using namespace std;
int main(){
int n;
cin>>n;
int map[n+1][n+1],inf=0x7fffff;
for(int i=1;i<=n;i++){
for(int j=1;j<=n;j++){
map[i][j]=inf;
}
}
for(int i=1;i<=n;i++){
int x;
cin>>x;
map[i][x]=1;
}
for(int k=1;k<=n;k++){
for(int i=1;i<=n;i++){
for(int j=1;j<=n;j++){
if(map[i][j]>map[i][k]+map[k][j]){
map[i][j]=map[i][k]+map[k][j];
}
}
}
}
int minn=inf;
for(int i=1;i<=n;i++){
if(map[i][i]<minn){
minn=map[i][i];
}
}
cout<<minn;
return 0;
}