#include <bits/stdc++.h>
 
using namespace std;
#define pb push_back
#define ll long long
const int off=1<<19;
const int inf=1e9+4;
const int mxsz=2e5+4;
vector<int>un;
vector<int>ch;
int q(int k,vector<int>a){
    cout<<k<<" ";
    for (auto x:a){
        cout<<x<<" ";
    }cout<<endl;
    int x=0;
    if (k!=0){
        cin>>x;
    }
    return x;
}
int main(){
    int n;
    cin>>n;
    int x;
    ch.pb(1);
    un.pb(1);
    vector<int>adj[n+1];
    int ans[n+1]={};
    for (int i=2;i<=n;i++){
        ch.pb(i);
        x=q(ch.size(),ch);
        // if (i==5){
        //     cout<<x<<" "<<un.size()<<" "<<ch.size()<<endl;
        //     for (auto x:un){
        //         cout<<x<<" ";
        //     }cout<<endl;
        // }
        if (x==un.size()+1){
            un.pb(i);
        }else if (x==un.size()){
            int l=0,r=un.size()-1;
            vector<int>fi;
            while (l<=r){
                int mid=(l+r)/2;
                vector<int>no;
                for (int j=l;j<=mid;j++){
                    no.pb(un[j]);
                }
                no.pb(i);
                if (q(no.size(),no)==no.size()-1){
                    fi=no;
                    r=mid-1;
                }else{
                    l=mid+1;
                }
            }
            adj[fi[0]].pb(i);
        }
    }
    int cnt=1;
    for (int i=1;i<=n;i++){
        if (ans[i]==0){
            ans[i]=cnt;
            cnt++;
        }
        for (auto x:adj[i]){
            ans[x]=ans[i];
        }
    }
    vector<int>out;
    for (int i=1;i<=n;i++){
        out.pb(ans[i]);
    }
    q(0,out);
    return 0;
}
| # | Verdict  | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict  | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict  | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict  | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict  | Execution time | Memory | Grader output | 
|---|
| Fetching results... |