/*
author : [ Godsent ]
created : 2025.10.19 12:51:16
*/
#include <bits/stdc++.h>
#include <ext/pb_ds/assoc_container.hpp>
#include <ext/pb_ds/tree_policy.hpp>
#define el '\n'
#define int long long
#define lb lower_bound
#define ub upper_bound
#define fi first
#define se second
#define sz(x) ((int)(x).size())
#define all(v) (v).begin(), (v).end()
#define pb push_back
#define prs(n) fixed << setprecision(n)
const int mod = 1e9 + 7;
const int N = 2e5 + 5;
const int INF = 1e18;
using namespace std;
using namespace __gnu_pbds;
template <typename T>
using ordered_set = tree<T, null_type, less<T>, rb_tree_tag, tree_order_statistics_node_update>;
int ask(int x) {
cout << "? " << x << endl;
int ans;
cin >> ans;
return ans;
}
int giaithua(int n) {
int ans = 1;
for (int i = 1; i <= n; i++) ans *= i;
return ans;
}
void Solve() {
int n;
cin >> n;
map<int, int> mp;
vector<pair<int, int>> q;
for (int i = 1; i <= 6 * n; i += 6) {
int x = ask(i);
mp[x]++;
q.pb({i, x});
}
vector<int> ans;
set<int> st = {1, 2, 3, 4, 5, 6};
for (int i = 1; i <= 6; i++) {
if (mp[i] != giaithua(5)) {
ans.pb(i);
st.erase(i);
break;
}
}
int k = 0;
for (int i = 0; i < sz(q); i++) {
auto [j, x] = q[i];
if (x == ans[0]) q[k++] = q[i];
}
q.resize(k);
mp.clear();
for (int i = 0; i < sz(q); i++) {
int x = ask(q[i].fi + 1);
mp[x]++;
q[i] = {q[i].fi + 1, x};
}
for (auto &x : st) {
if (mp[x] != giaithua(4)) {
ans.pb(x);
st.erase(x);
break;
}
}
k = 0;
for (int i = 0; i < sz(q); i++) {
auto [j, x] = q[i];
if (x == ans[0]) q[k++] = q[i];
}
q.resize(k);
mp.clear();
for (int i = 0; i < sz(q); i++) {
int x = ask(q[i].fi + 1);
mp[x]++;
q[i] = {q[i].fi + 1, x};
}
for (auto& x : st) {
if (mp[x] != giaithua(3)) {
ans.pb(x);
st.erase(x);
break;
}
}
k = 0;
for (int i = 0; i < sz(q); i++) {
auto [j, x] = q[i];
if (x == ans[0]) q[k++] = q[i];
}
q.resize(k);
mp.clear();
for (int i = 0; i < sz(q); i++) {
int x = ask(q[i].fi + 1);
mp[x]++;
q[i] = {q[i].fi + 1, x};
}
for (auto& x : st) {
if (mp[x] != giaithua(2)) {
ans.pb(x);
st.erase(x);
break;
}
}
k = 0;
for (int i = 0; i < sz(q); i++) {
auto [j, x] = q[i];
if (x == ans[0]) q[k++] = q[i];
}
q.resize(k);
mp.clear();
for (int i = 0; i < sz(q); i++) {
int x = ask(q[i].fi + 1);
mp[x]++;
q[i] = {q[i].fi + 1, x};
}
for (auto& x : st) {
if (mp[x] != giaithua(1)) {
ans.pb(x);
st.erase(x);
break;
}
}
k = 0;
for (int i = 0; i < sz(q); i++) {
auto [j, x] = q[i];
if (x == ans[0]) q[k++] = q[i];
}
q.resize(k);
mp.clear();
for (int i = 0; i < sz(q); i++) {
int x = ask(q[i].fi + 1);
mp[x]++;
q[i] = {q[i].fi + 1, x};
}
for (auto& x : st) {
if (mp[x] != giaithua(0)) {
ans.pb(x);
st.erase(x);
break;
}
}
cout << "! ";
for (auto &x : ans) cout << x << ' ';
}
signed main() {
ios_base::sync_with_stdio(false);
cin.tie(0);
cout.tie(0);
// #ifndef ONLINE_JUDGE
// freopen("test.in", "r", stdin);
// freopen("test.out", "w", stdout);
// #endif
int T = 1;
cin>> T;
while (T--) Solve();
return 0;
}
LyoKICAgIGF1dGhvciAgOiBbIEdvZHNlbnQgXQogICAgY3JlYXRlZCA6IDIwMjUuMTAuMTkgMTI6NTE6MTYKKi8KCiNpbmNsdWRlIDxiaXRzL3N0ZGMrKy5oPgoKI2luY2x1ZGUgPGV4dC9wYl9kcy9hc3NvY19jb250YWluZXIuaHBwPgojaW5jbHVkZSA8ZXh0L3BiX2RzL3RyZWVfcG9saWN5LmhwcD4KI2RlZmluZSBlbCAnXG4nCiNkZWZpbmUgaW50IGxvbmcgbG9uZwojZGVmaW5lIGxiIGxvd2VyX2JvdW5kCiNkZWZpbmUgdWIgdXBwZXJfYm91bmQKI2RlZmluZSBmaSBmaXJzdAojZGVmaW5lIHNlIHNlY29uZAojZGVmaW5lIHN6KHgpICgoaW50KSh4KS5zaXplKCkpCiNkZWZpbmUgYWxsKHYpICh2KS5iZWdpbigpLCAodikuZW5kKCkKI2RlZmluZSBwYiBwdXNoX2JhY2sKI2RlZmluZSBwcnMobikgZml4ZWQgPDwgc2V0cHJlY2lzaW9uKG4pCgpjb25zdCBpbnQgbW9kID0gMWU5ICsgNzsKY29uc3QgaW50IE4gPSAyZTUgKyA1Owpjb25zdCBpbnQgSU5GID0gMWUxODsKCnVzaW5nIG5hbWVzcGFjZSBzdGQ7CnVzaW5nIG5hbWVzcGFjZSBfX2dudV9wYmRzOwp0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KdXNpbmcgb3JkZXJlZF9zZXQgPSB0cmVlPFQsIG51bGxfdHlwZSwgbGVzczxUPiwgcmJfdHJlZV90YWcsIHRyZWVfb3JkZXJfc3RhdGlzdGljc19ub2RlX3VwZGF0ZT47CgppbnQgYXNrKGludCB4KSB7CiAgY291dCA8PCAiPyAiIDw8IHggPDwgZW5kbDsKICBpbnQgYW5zOwogIGNpbiA+PiBhbnM7CiAgcmV0dXJuIGFuczsKfQoKaW50IGdpYWl0aHVhKGludCBuKSB7CiAgaW50IGFucyA9IDE7CiAgZm9yIChpbnQgaSA9IDE7IGkgPD0gbjsgaSsrKSBhbnMgKj0gaTsKICByZXR1cm4gYW5zOwp9Cgp2b2lkIFNvbHZlKCkgewogIGludCBuOwogIGNpbiA+PiBuOwogIG1hcDxpbnQsIGludD4gbXA7CiAgdmVjdG9yPHBhaXI8aW50LCBpbnQ+PiBxOwogIGZvciAoaW50IGkgPSAxOyBpIDw9IDYgKiBuOyBpICs9IDYpIHsKICAgIGludCB4ID0gYXNrKGkpOwogICAgbXBbeF0rKzsKICAgIHEucGIoe2ksIHh9KTsKICB9CgogIHZlY3RvcjxpbnQ+IGFuczsKICBzZXQ8aW50PiBzdCA9IHsxLCAyLCAzLCA0LCA1LCA2fTsKICBmb3IgKGludCBpID0gMTsgaSA8PSA2OyBpKyspIHsKICAgIGlmIChtcFtpXSAhPSBnaWFpdGh1YSg1KSkgewogICAgICBhbnMucGIoaSk7CiAgICAgIHN0LmVyYXNlKGkpOwogICAgICBicmVhazsKICAgIH0KICB9CgogIGludCBrID0gMDsgCiAgZm9yIChpbnQgaSA9IDA7IGkgPCBzeihxKTsgaSsrKSB7CiAgICBhdXRvIFtqLCB4XSA9IHFbaV07CiAgICBpZiAoeCA9PSBhbnNbMF0pIHFbaysrXSA9IHFbaV07CiAgfQogIHEucmVzaXplKGspOwoKICBtcC5jbGVhcigpOwogIGZvciAoaW50IGkgPSAwOyBpIDwgc3oocSk7IGkrKykgewogICAgaW50IHggPSBhc2socVtpXS5maSArIDEpOwogICAgbXBbeF0rKzsKICAgIHFbaV0gPSB7cVtpXS5maSArIDEsIHh9OwogIH0KCiAgZm9yIChhdXRvICZ4IDogc3QpIHsKICAgIGlmIChtcFt4XSAhPSBnaWFpdGh1YSg0KSkgewogICAgICBhbnMucGIoeCk7CiAgICAgIHN0LmVyYXNlKHgpOwogICAgICBicmVhazsKICAgIH0KICB9CgogIGsgPSAwOwogIGZvciAoaW50IGkgPSAwOyBpIDwgc3oocSk7IGkrKykgewogICAgYXV0byBbaiwgeF0gPSBxW2ldOwogICAgaWYgKHggPT0gYW5zWzBdKSBxW2srK10gPSBxW2ldOwogIH0KICBxLnJlc2l6ZShrKTsKCiAgbXAuY2xlYXIoKTsKICBmb3IgKGludCBpID0gMDsgaSA8IHN6KHEpOyBpKyspIHsKICAgIGludCB4ID0gYXNrKHFbaV0uZmkgKyAxKTsKICAgIG1wW3hdKys7CiAgICBxW2ldID0ge3FbaV0uZmkgKyAxLCB4fTsKICB9CgogIGZvciAoYXV0byYgeCA6IHN0KSB7CiAgICBpZiAobXBbeF0gIT0gZ2lhaXRodWEoMykpIHsKICAgICAgYW5zLnBiKHgpOwogICAgICBzdC5lcmFzZSh4KTsKICAgICAgYnJlYWs7CiAgICB9CiAgfQoKICBrID0gMDsKICBmb3IgKGludCBpID0gMDsgaSA8IHN6KHEpOyBpKyspIHsKICAgIGF1dG8gW2osIHhdID0gcVtpXTsKICAgIGlmICh4ID09IGFuc1swXSkgcVtrKytdID0gcVtpXTsKICB9CiAgcS5yZXNpemUoayk7CgogIG1wLmNsZWFyKCk7CiAgZm9yIChpbnQgaSA9IDA7IGkgPCBzeihxKTsgaSsrKSB7CiAgICBpbnQgeCA9IGFzayhxW2ldLmZpICsgMSk7CiAgICBtcFt4XSsrOwogICAgcVtpXSA9IHtxW2ldLmZpICsgMSwgeH07CiAgfQoKICBmb3IgKGF1dG8mIHggOiBzdCkgewogICAgaWYgKG1wW3hdICE9IGdpYWl0aHVhKDIpKSB7CiAgICAgIGFucy5wYih4KTsKICAgICAgc3QuZXJhc2UoeCk7CiAgICAgIGJyZWFrOwogICAgfQogIH0KCiAgayA9IDA7CiAgZm9yIChpbnQgaSA9IDA7IGkgPCBzeihxKTsgaSsrKSB7CiAgICBhdXRvIFtqLCB4XSA9IHFbaV07CiAgICBpZiAoeCA9PSBhbnNbMF0pIHFbaysrXSA9IHFbaV07CiAgfQogIHEucmVzaXplKGspOwoKICBtcC5jbGVhcigpOwogIGZvciAoaW50IGkgPSAwOyBpIDwgc3oocSk7IGkrKykgewogICAgaW50IHggPSBhc2socVtpXS5maSArIDEpOwogICAgbXBbeF0rKzsKICAgIHFbaV0gPSB7cVtpXS5maSArIDEsIHh9OwogIH0KCiAgZm9yIChhdXRvJiB4IDogc3QpIHsKICAgIGlmIChtcFt4XSAhPSBnaWFpdGh1YSgxKSkgewogICAgICBhbnMucGIoeCk7CiAgICAgIHN0LmVyYXNlKHgpOwogICAgICBicmVhazsKICAgIH0KICB9CgogIGsgPSAwOwogIGZvciAoaW50IGkgPSAwOyBpIDwgc3oocSk7IGkrKykgewogICAgYXV0byBbaiwgeF0gPSBxW2ldOwogICAgaWYgKHggPT0gYW5zWzBdKSBxW2srK10gPSBxW2ldOwogIH0KICBxLnJlc2l6ZShrKTsKCiAgbXAuY2xlYXIoKTsKICBmb3IgKGludCBpID0gMDsgaSA8IHN6KHEpOyBpKyspIHsKICAgIGludCB4ID0gYXNrKHFbaV0uZmkgKyAxKTsKICAgIG1wW3hdKys7CiAgICBxW2ldID0ge3FbaV0uZmkgKyAxLCB4fTsKICB9CgogIGZvciAoYXV0byYgeCA6IHN0KSB7CiAgICBpZiAobXBbeF0gIT0gZ2lhaXRodWEoMCkpIHsKICAgICAgYW5zLnBiKHgpOwogICAgICBzdC5lcmFzZSh4KTsKICAgICAgYnJlYWs7CiAgICB9CiAgfQoKICBjb3V0IDw8ICIhICI7CiAgZm9yIChhdXRvICZ4IDogYW5zKSBjb3V0IDw8IHggPDwgJyAnOwoKfQoKc2lnbmVkIG1haW4oKSB7CiAgaW9zX2Jhc2U6OnN5bmNfd2l0aF9zdGRpbyhmYWxzZSk7CiAgY2luLnRpZSgwKTsKICBjb3V0LnRpZSgwKTsKCi8vICNpZm5kZWYgT05MSU5FX0pVREdFCi8vICAgZnJlb3BlbigidGVzdC5pbiIsICJyIiwgc3RkaW4pOwovLyAgIGZyZW9wZW4oInRlc3Qub3V0IiwgInciLCBzdGRvdXQpOwovLyAjZW5kaWYKCiAgaW50IFQgPSAxOwogIGNpbj4+IFQ7CiAgd2hpbGUgKFQtLSkgU29sdmUoKTsKCiAgcmV0dXJuIDA7Cn0=