#include <bits/stdc++.h>
using namespace std;
#define int long long
#define sp <<" "<<
//#define endl '\n'
#define all(x) x.begin(),x.end()
int inf = 2e18;
const int MOD=1000000007;
int ask(vector<int>g)
{
cout<<g.size()<<" ";
for(auto el:g)cout<<el<<" ";
cout<<endl;
int a;
cin>>a;
return a;
}
void solve()
{
int n;
cin>>n;
vector<int>sonr(n,-1);
for(int i=0;i<n;i++)
{
int r=n-1,l=i+1;
while(r>=l)
{
int m=(l+r)/2;
vector<int>msg;
for(int j=i;j<=m;j++)msg.push_back(j+1);
int a=ask(msg);
msg.erase(msg.begin());
int b=ask(msg);
if(a==b)r=m-1;
else l=m+1;
}
sonr[i]=l;
}
int aktifr=1;
vector<int>renk(n);
for(int i=n-1;i>=0;i--)
{
if(sonr[i]==n)
{
renk[i]=aktifr;
aktifr++;
continue;
}
renk[i]=renk[sonr[i]];
}
cout<<"0 ";
for(int i=0;i<n;i++)
{
cout<<renk[i]<<" ";
}
cout<<endl;
}
signed main()
{
ios_base::sync_with_stdio(0);
//freopen("in.txt", "r", stdin);
//freopen("out.txt", "w", stdout);
int t=1;
//cin>>t;
//#else
//freopen("snakes.in", "r", stdin);
//freopen("snakes.out", "w", stdout);
while(t--)solve();
return 0;
}