#include<bits/stdc++.h>
#define M 200005
using namespace std;
int n,a[M],b[M];
inline int InP()
{
int N=0;
char C;
C=getchar();
while('0' <= C && C <= '9')
N=N*10 + (C-'0') , C=getchar();
return N;
}
int f(int x)
{
memset(b,0,sizeof(b));
int sum1=0,sum2=1,j;
for(int i=x;b[i]!=1;i=a[i])
{
b[i]=1;
sum1++;
j=i;
}
j=a[j];
for(int i=x;a[i]!=j;i=a[i])
{
sum2++;
}
int cnt=sum1-sum2;
return cnt;
}
int main()
{
int minx=0xfffff;
n=InP();
for(int i=1;i<=n;i++)
{
a[i]=InP();
}
for(int i=1;i<=n;i++)
{
int y=f(i);
if(y!=0)
minx=min(minx,y);
}
printf("%d\n",minx);
return 0;
}