def gcd(a,b):
if(b==0):
return a
else:
return gcd(b,a%b)
n =int(input())
p =[0] + [int(x)for x ininput().split()]
vis =[0for i inrange(n+1)]
ans =1for i inrange(1,n+1):
if(vis[i]==0):
u = p[i]
l =1
vis[i]=1while(vis[u]==0):
l+=1
vis[u]=1
u = p[u]
ans = ans*l//gcd(ans,l)
ans =str(ans)iflen(ans)> n:
ans = ans[-n:-1]print(ans)