#include<bits/stdc++.h>
typedef int LL;
typedef double dl;
#define opt operator
#define pb push_back
#define pii std::pair<LL,LL>
const LL maxn=1e6+9,mod=998244353,inf=0x3f3f3f3f;
LL Read(){
	LL x(0),f(1); char c=getchar();
	while(c<'0' || c>'9'){
		if(c=='-') f=-1; c=getchar();
	}
	while(c>='0' && c<='9'){
		x=(x<<3ll)+(x<<1ll)+c-'0'; c=getchar();
	}return x*f;
}
void Chkmin(LL &x,LL y){
	if(y<x) x=y;
}
void Chkmax(LL &x,LL y){
	if(y>x) x=y;
}
LL add(LL x,LL y){
	return x+=y,x>=mod?x-mod:x;
}
LL dec(LL x,LL y){
	return x-=y,x<0?x+mod:x;
}
LL mul(LL x,LL y){
	return 1ll*x*y%mod;
}
LL Pow(LL base,LL b){
	LL ret(1); while(b){
		if(b&1) ret=mul(ret,base); base=mul(base,base); b>>=1;
	}return ret;
}
LL n;
LL a[maxn];
std::vector<LL> Ans;
LL Rand(LL l,LL r){
	return rand()%(r-l+1)+l;
}
void Init(){
//	srand(time(NULL));
	/*
	n=Rand(5,10);
	for(LL i=1;i<=n;++i) a[i]=i;
	std::random_shuffle(a+1,a+1+n);
	for(LL i=1;i<=n;++i) printf("%d ",a[i]); puts("");
	return;
//	*/
	n=Read();
	for(LL i=1;i<=n;++i) a[i]=Read();
}
void Opt(LL x){
//	printf("# %d\n",x);
    /*
	if(!((Ans.size()&1)^(x&1))){
		puts("WA");
	}
	*/
	Ans.pb(x);
	std::swap(a[x],a[x+1]);
	assert(x^n);
}
void Solve(){
	if(n==2){
		if(a[1]==1 && a[2]==2){
			puts("0");
		}else{
			puts("1"); puts("1");
		}
		return;
	}
	std::vector<LL>().swap(Ans);
	for(LL m=1;m<n;++m){
		if(a[m]==m) continue;
		LL p(0);
		for(LL i=m+1;i<=n;++i) if(a[i]==m){
			p=i; break;
		}
//		printf("%d:%d\n",m,p);
		assert(p);
		if(m==n-1){
			if((Ans.size()&1)==((p-1)&1)){
				Opt(n-2); Opt(n-1);
				Opt(n-2); Opt(n-1); Opt(n-2);
			}else{
//				puts("033");
				Opt(p-1);
			}
		}else{
			if((Ans.size()&1)==((p-1)&1)){
//				puts("#1");
				if(p^n){
				    Opt(p); ++p;
				    Opt(p-2);
			    }else{
			    	Opt(n-2);
				}
			}
//			puts("#2");
			while(p^m){
				Opt(p-1); --p;
			}
		}
	}
	LL flag(1);
	for(LL i=1;i<=n;++i) flag&=(a[i]==i);
	assert(flag);
	assert(Ans.size()<=n*n);
	printf("%d\n",Ans.size());
	if(Ans.size()){
	    for(LL i=0;i<Ans.size();++i){
		    assert(i^(Ans[i]&1));
		    printf("%d ",Ans[i]);
	    }puts("");
    }
}
int main(){
//	srand(time(NULL));
//	freopen("y1.txt","r",stdin);
	LL T=Read();
	while(T--){
		Init();
		Solve();
	}
	return 0;
}




#include<bits/stdc++.h>
#include<bits/extc++.h>
#pragma GCC optimize("Ofast")
using namespace std;
using namespace __gnu_pbds;
template<typename TH> void _dbg(const char* sdbg, TH h) { cerr<<sdbg<<"="<<h<<"\n"; }
template<typename TH, typename... TA> void _dbg(const char* sdbg, TH h, TA... t){
	while(*sdbg != ',') { cerr<<*sdbg++; } cerr<<"="<<h<<","; _dbg(sdbg+1, t...);
}
#ifdef DEBUG
#define debug(...) _dbg(#__VA_ARGS__, __VA_ARGS__)
#define debugv(x) {{cerr<<#x<<": "; for(auto i:x) cerr<<i<<" "; cerr<<endl;}}
#define debugr(l,r,x) {{cerr<<#x<<": "; for(int i=l;i<=r;i++) cerr<<x<<" "; cerr<<endl;}}
#else
#define debug(...) (__VA_ARGS__)
#define debugv(x)
#define debugr(l,r,x)
#define cerr while(0) cerr
#endif
mt19937 rng(chrono::steady_clock::now().time_since_epoch().count());
//#define int long long
typedef __int128 INT;
typedef long long ll;
typedef vector<int> vi;
typedef pair<int, int> pii;
#define priority_queue std::priority_queue
#define F first
#define S second
typedef tree<int,null_type,less<int>,rb_tree_tag,tree_order_statistics_node_update> ordered_set;

int a[505], pos[505];
int n;

void swappe(int x, int y){
	swap(pos[a[x]], pos[a[y]]);
	swap(a[x], a[y]);
}
bool check(){
	for(int i=1; i<n; i++){
		if(a[i] > a[i+1]) return false;
	}
	return true;
}
void print(){
	for(int i=1; i<=n; i++){
		cerr<<a[i]<<" ";
	}
	cerr<<endl;
}
signed main(){
	ios_base::sync_with_stdio(false);
	cin.tie(NULL);
	cout.tie(NULL);
	int T;
	cin>>T;
	while(T--){
		cin>>n;
		for(int i=1; i<=n; i++){
			cin>>a[i];
			pos[a[i]]=i;
		}
		int t=1;
		vector<int> ans;
		if(check()) goto hell;
		for(int i=1; i<=n; i++){
			if(pos[i]==i) continue;
			while((pos[i]-1+t)%2==1){
				if((t+n-1)%2==0){
					swappe(n-1, n);
					ans.push_back(n-1);
				}
				else{
					swappe(n-2, n-1);
					ans.push_back(n-2);
				}
				t++;
				print();
				if(check()) goto hell;
			}
			for(int j=pos[i]; j>=i+1; j--){
				swappe(j-1, j);
				ans.push_back(j-1);
				t++;
				print();
			}
		}
		hell:;
		cout<<ans.size()<<'\n';
		for(int i: ans) cout<<i<<" ";
			cout<<'\n';
	}
}