#include <bits/stdc++.h>
using namespace std;
#define int long long
#define MAXN 1001
int n, k, t, ind;
int vis[MAXN], ans[MAXN];
vector<int> odd, even;
set<int> st;
signed main(){
cin >> n >> k;
ans[1] = 1;
for (int i(1); i<=n; ++i) st.insert(i);
for (int i(1); i<n; ++i){
cout << "? ";
st.erase(i);
ind = 0;
for (auto j: st){
cout << j << ' ';
if ((++ind) == k) break;
}
st.insert(i);
cout << endl;
cin >> vis[i];
if (i > 1){
if (vis[i] == vis[i-1]) ans[i] = ans[i-1];
else ans[i] = 1-ans[i-1];
if (ans[i]) odd.push_back(i);
else even.push_back(i);
}
}
cout << "? 1 ";
--k;
for (int i(0); i<min((int)(odd.size()-(odd.size()&1)), k); ++i) cout << odd[i] << ' ';
if (k > (int)(odd.size()-(odd.size()&1))){
for (int i(0); i<k-(int)(odd.size()-(odd.size()&1)); ++i) cout << even[i] << ' ';
}
cout << endl;
cin >> vis[n];
cout << "! ";
if (vis[n] & 1){
for (int i(1); i<=n; ++i) cout << ans[i] << ' ';
}else{
for (int i(1); i<=n; ++i) cout << 1-ans[i] << ' ';
}
cout << endl;
return 0;
}
评测姬说我样例都不过去,我很伤心