#include <bits/stdc++.h>
using namespace std;

#define pb push_back
#define fi first
#define se second
#define mp make_pair
#define endl '\n';
#define sz(x) ((int)(x).size())
#define min(a, b) a < b ? a : b
#define all(x) (x).begin(), (x).end()
#define rall(x) (x).rbegin(), (x).rend()
#define show(x) cout << #x << " = " << x << endl
#define yes cout << "YES\n"
#define no cout << "NO\n"
void dbg_out()
{
    cerr << endl;
}
template <typename Head, typename... Tail>
void dbg_out(Head H, Tail... T)
{
    cerr << ' ' << H;
    dbg_out(T...);
}
#define dbg(...) cerr << "(" << #__VA_ARGS__ << "):", dbg_out(__VA_ARGS__)
typedef long long ll;
// const int N = 2e5 + 5;
const int MOD = (1e9) + 7;


void solve() {
    int N;
    cin >> N;
    int size = 2*N;
    vector<int> slots(size, 0);
    bool possible = true;
    for(int i = N; i >=1; --i){
        bool placed = false;
        for(int p =0; p +i < size; ++p){
            if(slots[p]==0 && slots[p+i]==0){
                slots[p] = i;
                slots[p+i] = i;
                placed = true;
                break;
            }
        }
        if(!placed){
            possible = false;
            break;
        }
    }
    if(possible){
        string output;
        for(int idx =0; idx < size; ++idx){
            output += to_string(slots[idx]);
            if(idx != size-1){
                output += ' ';
            }
        }
        cout << output << '\n';
    }
    else{
        cout << "-1\n";
    }
}



int main()
{
    // freopen("input.txt", "r", stdin);
    ios::sync_with_stdio(0);
    cin.tie(0);
    cout.tie(0);
    int T = 1;
    cin >> T;
    while (T--)
    {
        solve();
    }

    return 0;
}
