#include <iostream>
#include <vector>
using namespace std;
vector<int> solve(int n) {
vector<int> result(n + 1);
// Estratégia: para obter a menor permutação lexicograficamente
// onde Pi != i, usamos o padrão:
// - Se n é par: trocamos pares adjacentes (1,2), (3,4), ...
// - Se n é ímpar: trocamos (1,2), depois (3,4), ..., e no final (n-1,n)
// mas para manter lexicograficamente menor, fazemos (1,2,3) -> (2,3,1)
if (n % 2 == 0) {
// n é par: trocar pares adjacentes
for (int i = 1; i <= n; i += 2) {
result[i] = i + 1;
result[i + 1] = i;
}
} else {
// n é ímpar: trocar pares e ajustar os últimos 3
for (int i = 1; i <= n - 3; i += 2) {
result[i] = i + 1;
result[i + 1] = i;
}
// Para os últimos 3 elementos: (n-2, n-1, n) -> (n-1, n, n-2)
result[n - 2] = n - 1;
result[n - 1] = n;
result[n] = n - 2;
}
return result;
}
int main() {
int t;
cin >> t;
while (t--) {
int n;
cin >> n;
vector<int> perm = solve(n);
// Imprimir resultado (índices de 1 a n)
for (int i = 1; i <= n; i++) {
cout << perm[i];
if (i < n) cout << " ";
}
cout << endl;
}
return 0;
}