#include using namespace std; #define ll long long #define ld long double #define pb push_back #define mp make_pair #define pii pair #define pll pair #define pdd pair #define all(x) (x).begin(), (x).end() #define fi first #define se second vector 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) { 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; }