func_code_string: #include <bits/stdc++.h>   inline char nc() {     static char buf[1000000], *p1 = buf, *p2 = buf;     return p1 == p2 && (p2 = (p1 = buf) + fread(buf, 1, 1000000, stdin), p1 == p2)                ? EOF                : *p1++;   }   inline void read(int &x) {     static char c;     for (c = getchar(); !( 0  <= c && c <=  9 ); c = getchar())       ;     for (x = 0; ( 0  <= c && c <=  9 ); c = getchar()) x = x * 10 + c - 48;   }   void write(int x) {     if (x < 10) {       putchar( 0  + x);       return;     }     write(x / 10);     putchar( 0  + x % 10);   }   inline void writeln(int x) {     if (x < 0) putchar( - ), x *= -1;     write(x);     putchar(  n );   }   inline void writel(int x) {     if (x < 0) putchar( - ), x *= -1;     write(x);     putchar(   );   }   using namespace std;   int T, a[1007], sb, ans[1007 * 1007], n, tot;   void play(int x) {     ans[++tot] = x;     a[x] ^= a[x + 2], a[x + 2] ^= a[x], a[x] ^= a[x + 2];     a[x + 1] ^= a[x + 2], a[x + 2] ^= a[x + 1], a[x + 1] ^= a[x + 2];   }   signed main() {     read(T);     while (T--) {       read(n);       tot = 0;       for (int i = 1; i <= n; i++) read(a[i]);       for (int i = 1; i <= n - 2; i++) {         sb = i;         for (int j = i + 1; j <= n; j++)           if (a[j] < a[sb]) sb = j;         while (sb >= i + 2) play(sb - 2), sb -= 2;         if (sb == i + 1) {           play(i), play(i);           continue;         }       }       for (int i = n; i >= 3; i--) {         sb = i;         for (int j = i - 1; j; j--)           if (a[j] > a[sb]) sb = j;         while (sb <= i - 2) play(sb), play(sb), sb += 2;         if (sb == i - 1) {           play(sb - 1);           continue;         }       }       for (int i = 1; i < n; i++)         if (a[i] > a[i + 1]) tot = -1;       writeln(tot);       if (tot <= 0) continue;       for (int i = 1; i < tot; i++) writel(ans[i]);       writeln(ans[tot]);     }     return 0;   }   