using namespace std;
#include <iostream>
#define Nmax 100001

int v[Nmax];

int main()
{
	int i, n, l, r, mid, ok, sol;

	cin >> n;

	for (v[1] = 1, i = 1; v[i] < n; ++i)
	{
		for (l = v[i], r = n; l <= r; )
		{
			mid = (l + r) / 2;

			cout << 1 << ' ' << v[i] << ' ' << mid << '\n';
			cout.flush();
			cin >> ok;

			if (ok) sol = mid, l = mid + 1;
			else r = mid - 1;
		}

		if (sol == n) break;
		v[i + 1] = sol + 1;
	}

	cout << 2 << ' ' << i << ' ';
	for (int j = 1; j <= i; ++j) cout << v[j] << ' ';
	cout << '\n';
	cout.flush();

    return 0;
}