#include <bits/stdc++.h>
using namespace std;
#define int long long
#define pb push_back
#define pii pair<int,int>
#define fi first
#define se second
#define inf LLONG_MAX
#define ti tuple<int,int,int>
signed main(){
    int n;cin>>n;
    vector<int>cur;
    int las=0;
    vector<int>dis,ans(n+10);
    for(int i=1;i<=n;i++){
        cout<<i<<" ";
        for(int j=1;j<=i;j++) cout<<j<<" ";
        cout<<endl;
        int x;cin>>x;
        if(las!=x){
            dis.pb(i);
            ans[i]=dis.size();
        }
        else{
            for(auto x:dis){
                cout<<2<<" "<<x<<" "<<i<<endl;
                int y;cin>>y;
                if(y==1){
                    ans[i]=ans[x];
                    break;
                }
            }
        }
        las=x;
    }
    cout<<0<<" ";
    for(int i=1;i<=n;i++)cout<<ans[i]<<' ';
}
// 0 2 1 2 3 1
// +1 distinct new num
| # | 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... |