1.回溯模板求排列
2.回溯模板求子集
# 当前位于点x,步长为length
def dfs(x,length):passvis[x]=length
#接下来走下一个点
#判断下一个点是否走过if vis[a[x]]!=0:#此时存在环global ansans=max(ans,length-vis[a[x]]+1)else:dfs(a[x],length+1)n=int(input())
a=[0]+list(map(int,input().split()))
# 标记数组:vis[x]表示点x的步数
vis=[0]*(n+1)
ans=0
for i in range(1,n+1):if vis[i]==0:#对于每个单独的环都要做一遍dfsdfs(i,1)
print(ans)