#include<bits/stdc++.h> using namespace std; #include<atcoder/all> using namespace atcoder; using mint=atcoder::modint998244353; #pragma GCC optimize("O3") #pragma GCC optimize("unroll-loops") signed main(){ int N;cin>>N; int x=-1,y=-1; { int l=-1e8,r=1e8; while(r-l>2){ int nl=(2*l+r)/3,nr=(l+2*r)/3; cout<<1<<" "<<nl<<" "<<0<<endl; int retl;cin>>retl; cout<<1<<" "<<nr<<" "<<0<<endl; int retr;cin>>retr; if(retl>retr){ r=nr; }else{ l=nl; } } int min_cost=1e18; for(int i=l;i<=r;i++){ cout<<1<<" "<<l<<" "<<0<<endl; int ret;cin>>ret; if(min_cost>ret){ min_cost=ret; x=i; } } } { int l=-1e8,r=1e8; while(r-l>2){ int nl=(2*l+r)/3,nr=(l+2*r)/3; cout<<1<<" "<<0<<" "<<nl<<endl; int retl;cin>>retl; cout<<1<<" "<<0<<" "<<nr<<endl; int retr;cin>>retr; if(retl>retr){ r=nr; }else{ l=nl; } } int min_cost=1e18; for(int i=l;i<=r;i++){ cout<<1<<" "<<0<<" "<<l<<endl; int ret;cin>>ret; if(min_cost>ret){ min_cost=ret; y=i; } } } cout<<2<<" "<<x<<" "<<y<<endl; }