#include using namespace std; void solve(){ int n,p; cin>>n>>p; vector a(n),tmp(n); for (int i=0;i>a[i]; a[i]--; tmp[a[i]]=i; } swap(a,tmp); vector> g; vector> g2; { vector vis(n); vector vec; auto dfs=[&](auto dfs,int v)-> void { if (vis[v]){ if ((int)vec.size()==2) g2.push_back({vec[0],vec[1]}); else g.push_back(vec); vec.clear(); return; } vis[v]=true; vec.push_back(v); dfs(dfs,a[v]); }; for (int i=0;i ans(n,-1); { int k=g2.size(); for (int i=0;i>t; while (t--) solve(); }