#include <iostream> using namespace std; long n,i,j,v[100005],nr,x; long ctb(long st,long dr) { long mij,x=st,r,ad=1; // while (st<=dr) // { // cout<<1<<' '<<x<<' '<<x+ad<<'\n'; // cout.flush(); // cin>>r; // if (r==1) // ad=ad*2; // else // { // ad=ad/2; // // } // } while (st<=dr) { mij=(st+dr+1)/2; if (mij==x) return mij; cout<<1<<' '<<x<<' '<<mij<<'\n'; cout.flush(); cin>>r; if (r==1) st=mij+1; else dr=mij-1; } return dr; } int main() { cin>>n; i=1; while (i<=n) { x=ctb(i,n); v[++nr]=i; i=x+1; } cout<<2<<' '<<nr<<' '; for (i=1;i<=nr;i++) cout<<v[i]<<' '; return 0; }