#include using namespace std; using ll=long long; int main(){ int ttt; cin>>ttt; random_device seed; mt19937 rnd(seed()); while(ttt--){ int n; cin>>n; vector> a(n,vector(n)); for(int i=0;i>a[i][j],a[i][j]--; vector ans; auto fr=[&](int r)->void{ ans.push_back(r+1); reverse(a[r].begin(),a[r].end()); }; auto fc=[&](int c)->void{ ans.push_back(c+1); vector tmp(n); for(int i=0;i> sign(n,vector(n)); { if(n%2==1){ vector r(n),c(n); vector rr(n),cc(n); for(int i=0;i revr=rr,revc=cc; reverse(revr.begin(),revr.end()); reverse(revc.begin(),revc.end()); //for(int x:r)cout< x,y; x.push_back(i*n+j);y.push_back(a[i][j]); x.push_back(i*n+(n-j-1));y.push_back(a[i][n-j-1]); x.push_back((n-i-1)*n+j);y.push_back(a[n-i-1][j]); x.push_back((n-i-1)*n+(n-j-1));y.push_back(a[n-i-1][n-j-1]); auto z=y; sort(z.begin(),z.end()); if(x!=z){ ok=false; }else{ int cnt=0; for(int s=0;s<4;s++)for(int t=s+1;t<4;t++)if(y[s]>y[t])cnt++; for(int t:x)sign[t/n][t%n]=1-2*(cnt%2); } } //for(int i=0;i rs,cs; for(int i=0;i s; for(int j=0;j todo; for(int i=0;ivoid{ if(ans.size()%2==0){ fr(n-x-1); fc(n-y-1); fr(n-x-1); fc(n-y-1); }else{ fc(n-y-1); fr(n-x-1); fc(n-y-1); fr(n-x-1); } }; for(int r:todo){ //cout<<"do"<> ca(n,vector(n)); for(int i=0;i