#include #include #include #include #include #include #include #include #include #include #include using namespace std; int N; bool ap[100009]; int answer (int i, int j) { printf ("1 %d %d\n", i, j);fflush (stdout); int ns; scanf ("%d",&ns);fflush(stdout); return ns; } void Finish (int l) { printf ("2 %d", l); for (int i=1; i<=N; i++) if (ap[i] == 1) printf (" %d", i); printf ("\n"), fflush (stdout); } int main() { //freopen ("input", "r", stdin); //freopen ("output", "w", stdout); scanf ("%d", &N), fflush (stdout); int cnt=0; for (int i=1; i<=N; i++) { int p = i + 1, u = N, mij, ras = i; while (p <= u) { mij = (p + u) >> 1; if (answer (i, mij)) ras = mij, p = mij + 1; else u = mij - 1; } ap[i]=1, cnt++; i = ras; } Finish (cnt); return 0; }