#include #include #include #include using namespace std; int gcd(int a,int b) { while(b) { int t=a%b; a=b; b=t; } return a; } int N,P[2<<17]; bool vis[2<<17]; int ans[2<<17]; int main() { ios::sync_with_stdio(false); cin.tie(nullptr); cin>>N; for(int i=1;i<=N;i++)cin>>P[i]; for(int i=1;i<=N;i++)if(!vis[i]) { vectorU; int u=i; while(!vis[u]) { vis[u]=true; U.push_back(u); u=P[u]; } sort(U.begin(),U.end()); int g=0; for(int j=1;j