using namespace std; #include #define Nmax 100001 int v[Nmax]; int main() { int i, n, l, r, mid, ok, sol, gms; cin >> n; gms = 8 * 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; gms -= mid - v[i] + 1; if (gms < 0) while (1); if (ok) sol = mid, l = mid + 1; else r = mid - 1; } v[i + 1] = sol + 1; } cout << 2 << ' ' << i - 1 << ' '; for (int j = 1; j < i; ++j) cout << v[j] << ' '; cout << '\n'; cout.flush(); return 0; }