#include using namespace std; typedef long long ll; typedef pair pii; typedef pair pll; #define pb push_back #define mp make_pair #define rep(i,n) for(int i=0;i<(n);++i) constexpr int mod=1000000007; constexpr int mod1=998244353; vector dx={0,1,0,-1},dy={-1,0,1,0}; bool inside(int y,int x,int h,int w){ if(y=0 && x=0) return true; return false; } int main(){ cin.tie(0); ios::sync_with_stdio(false); int n;cin >> n; deque d; for(int i = n - 1; i > 0; i--){ if(i + d.size() < 2){ cout << "! 2" << endl; cout << "1 2" << endl; return 0; } cout << "? " << i + d.size() << endl; for(int j = 1; j <= i; j++){ if(j == 1) cout << j; else cout << " " << j; } rep(j,d.size()){ cout << " " << d.at(j); } cout << endl; int ans;cin >> ans; if(ans == 0){ d.push_front(i + 1); } } if(d.size()){ cout << "? " << d.size() << endl; rep(i,d.size()){ if(i == 0) cout << d.at(i); else cout << " " << d.at(i); } cout << endl; int ans;cin >> ans; if(ans == 0) d.push_front(1); } cout << "! " << d.size() << endl; rep(i,d.size()){ if(i == 0) cout << d.at(i); else cout << " " << d.at(i); } cout << endl; }