#include <bits/stdc++.h>
const int N = 502;
void sw(float *x) {
  float tmp = *x;
  *x = *(x + 2);
  *(x + 2) = *(x + 1);
  *(x + 1) = tmp;
}
int nxs(float *p, int n) {
  int res = 0;
  for (int i = 0; i < n - 1; i++)
    for (int j = i + 1; j < n; j++)
      if (p[i] > p[j]) res++;
  return res;
}
int diff(float *p) {
  static float tmp[3];
  for (int i = 0; i < 3; i++) tmp[i] = p[i];
  sw(tmp);
  return nxs(tmp, 3) - nxs(p, 3);
}
int main() {
  int _t;
  scanf("%d", &_t);
  while (_t--) {
    static float arr[N];
    static int anss[N * N];
    static int tm[N];
    memset(tm, 0, sizeof(tm));
    int n;
    scanf("%d", &n);
    int f2 = -1;
    for (int i = 1; i <= n; i++) {
      int a;
      scanf("%d", &a);
      tm[a]++;
      if (tm[a] == 2) f2 = a;
      arr[i] = a + 0.0001 * tm[a];
    }
    int nx = 0;
    for (int i = 1; i < n; i++)
      for (int j = i + 1; j <= n; j++)
        if (arr[i] > arr[j]) nx++;
    if (nx & 1) {
      if (f2 != -1) {
        int f21 = -1, f22 = -1;
        for (int i = 1; i <= n; i++)
          if (((int)arr[i]) == f2) {
            if (f21 == -1)
              f21 = i;
            else if (f22 == -1)
              f22 = i;
            else
              break;
          }
        std::swap(arr[f21], arr[f22]);
        nx++;
      } else {
        printf("-1\n");
        continue;
      }
    }
    int ans = 0;
    while (nx)
      for (int i = 1; i <= n - 2; i++)
        for (int df = diff(arr + i); df <= 0;
             sw(arr + i), df = diff(arr + i), anss[++ans] = i)
          nx += df;
    printf("%d\n", ans);
    for (int i = 1; i <= ans; i++) printf("%d ", anss[i]);
    printf("\n");
  }
  return 0;
}
