#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;
}
