rt
#include <bits/stdc++.h>
int a[1000003] = {0};
int main()
{
// std::ios::sync_with_stdio(0);
// std::cin.tie(nullptr);
int n, m, q;
std::cin >> n >> m >> q;
std::set<int> ans;
for(int i = 1; i <= 1000; i += 20)
{
std::set<int> same, diff;
same.insert(i);
for(int j = i+1; j <= i+19; ++j)
{
int res;
std::cout.tie(nullptr);
std::cout << "? " << i << ' ' << j << '\n';
std::cin >> res;
if(res == -1) exit(0);
if(res) diff.insert(j);
else same.insert(j);
}
if(same.size() >= 10)
{
for(int tmp: diff)
ans.insert(tmp);
}
else
{
for(int tmp: same)
ans.insert(tmp);
}
if(ans.size() == m)
break;
}
std::cout << '!';
for(int tmp: ans)
std::cout << ' ' << tmp;
std::cout << '\n';
return 0;
}
AC 18 / WA 32