#include using namespace std; int n; int Ask(int a, int b) { cout << 1 << " " << a << " " << b << endl; cin >> a; return a; } int Find(int i) { int l = i, r = n; while(l < r) { for(int step = 1; l + step <= r; step <<= 1) { int ans = Ask(i, l + step); if(ans == 1) { l += step; } else { r = l + step - 1; break; } } int step; for(step=1; l + step <= r; step <<= 1); for(;step;step>>=1) { if(l + step <= r) { int ans = Ask(i, l + step); if(ans) l += step; else r = l + step - 1; } } } return l; } vector Sol; int main() { cin >> n; int i = 1; while(i <= n) { Sol.push_back(i); int next_i = Find(i); i = next_i + 1; } cout << 2 << " " << Sol.size() << " "; for(auto x : Sol) { cout << x << " "; } return 0; }