#include <bits/stdc++.h>

using namespace std;

#define ll long long
#define ld long double
#define pb push_back
#define mp make_pair
#define pii pair<int, int>
#define pll pair<ll, ll>
#define pdd pair<ld, ld>
#define all(x) (x).begin(), (x).end()
#define fi first
#define se second

vector<int> v;

int main() {
    cin.sync_with_stdio(false);

    int n;
    cin >> n;

    int curr = 1;
    v.pb(1);

    while (curr < n) {
        int l = curr;
        int r = n;
        int poz = curr;
        while (l <= r) {
            if (l == r)
                break;

            int mi = (l + r) / 2;
            cout << 1 << " " << curr << " " << mi << '\n';
            cout.flush();

            int mlc;
            cin >> mlc;
            if (mlc) {
                poz = mi;
                l = mi + 1;
            } else
                r = mi - 1;
        }

        if (poz + 1 <= n) {
            v.pb(poz + 1);
            curr = poz + 1;
        } else
            break;
    }

    cout << 2 << " " << (int)v.size() << " ";
    cout.flush();
    for (auto it : v)
        cout << it << " ", cout.flush();

    return 0;
}