#include <iostream>
#include <vector>

using namespace std;

vector <int> sol;

bool ask(int a, int b) {
    cout << "1 " << a << ' ' << b << '\n';
    cout.flush();

    bool ans;
    cin >> ans;

    return ans;
}

int main()
{
    int n = 0;
    cin >> n;

    int ans;
    for (int i = 1; i <= n; i = ans + 1) {
        sol.push_back(i);

        int st = i + 1, dr = n;
        ans = i;

        while (st <= dr) {
            int mid = (st + dr) >> 1;
            if (ask(i, mid))
                ans = mid, st = mid + 1;
            else
                dr = mid - 1;
        }
    }

    cout << "2 " << sol.size();
    for (int i = 0; i < sol.size(); ++ i)
        cout << ' ' << sol[i];
    cout << '\n';

    cout.flush();
    return 0;
}