#include #include #include #include #include #include using namespace std; int n; vector ans; int F(int l, int r) { printf("1 %d %d\n", l, r); fflush(stdout); int res; scanf("%d", &res); return res; } void Solve(int l) { int r = l; while (r < n) { if (!F(l, r + 1)) break; int prv = 1, cur = 2; while (r + cur <= n) if (F(l, r + cur)) prv = cur, cur *= 2; else break; r += prv; } ans.push_back(r + 1); } int main() { scanf("%d", &n); ans.push_back(1); while (ans.back() != n + 1) Solve(ans.back()); ans.pop_back(); printf("2 %d", ans.size()); for (int i = 0; i < ans.size(); i++) printf(" %d", ans[i]); printf("\n"); fflush(stdout); return 0; }