#include <bits/stdc++.h>
using namespace std;
void fun() {
ios_base::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
}
int const M = 1e6;
int a[M];
bool used[M];
int main() {
fun();
int n; cin >> n;
while (n--) {
int p; cin >> p;
int s = ceil(sqrt(p));
int w = s * s;//4
p -= 1;//3
bool v = 1;
for (int i = p ; i >= 0; --i) {
// 4-2 3 2
if (((w - i) <= p) &&(!used[ w-i])) {
a[i] = w-i;
used[w-i] = 1;
}
else {
s--;
if (s == -1) {
v = 0;
break;
}
w = (s ) * (s);
i++;
}
}
if (v) {
for (int i = 0; i <= p; ++i)cout << a[i] << ' ';
cout << endl;
}
else cout << -1 << endl;
for (int i = 0; i <= p; ++i) {
a[i] = 0;
used[i] = 0;
}
}
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgoKdm9pZCBmdW4oKSB7Cglpb3NfYmFzZTo6c3luY193aXRoX3N0ZGlvKDApOwoJY2luLnRpZSgwKTsKCWNvdXQudGllKDApOwp9CgppbnQgY29uc3QgTSA9IDFlNjsKaW50IGFbTV07CmJvb2wgdXNlZFtNXTsKaW50IG1haW4oKSB7CglmdW4oKTsKCWludCBuOyBjaW4gPj4gbjsKCXdoaWxlIChuLS0pIHsKCQlpbnQgcDsgY2luID4+IHA7CgkJaW50IHMgPSBjZWlsKHNxcnQocCkpOwoJCWludCB3ID0gcyAqIHM7Ly80IAoJCXAgLT0gMTsvLzMgIAoJCWJvb2wgdiA9IDE7CgkJZm9yIChpbnQgaSA9IHAgOyBpID49IDA7IC0taSkgeyAgICAgICAgIAoJCQkgICAgLy8gNC0yICAgICAzICAgICAgICAgICAgIDIKCQkJaWYgKCgodyAtIGkpIDw9IHApICYmKCF1c2VkWyB3LWldKSkgewoJCQkJYVtpXSA9IHctaTsKCQkJCXVzZWRbdy1pXSA9IDE7CgkJCX0KCQkJZWxzZSB7CgkJCQlzLS07CgkJCQlpZiAocyA9PSAtMSkgewoJCQkJCXYgPSAwOwoJCQkJCWJyZWFrOwoJCQkJfQoJCQkJdyA9IChzICkgKiAocyk7CgkJCQlpKys7CgkJCX0KCQl9CgkJaWYgKHYpIHsKCQkJZm9yIChpbnQgaSA9IDA7IGkgPD0gcDsgKytpKWNvdXQgPDwgYVtpXSA8PCAnICc7CgkJCWNvdXQgPDwgZW5kbDsKCQl9CgkJZWxzZSBjb3V0IDw8IC0xIDw8IGVuZGw7CgkJZm9yIChpbnQgaSA9IDA7IGkgPD0gcDsgKytpKSB7CgkJCWFbaV0gPSAwOwoJCQl1c2VkW2ldID0gMDsKCQl9CgoJfQoJcmV0dXJuIDA7Cn0=