// Please submit with C++14! #pragma region HEAD // Spectre #include // By rbtree (https://rbtree.archi) #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #ifdef ___RB_DEBUG___ #include "rb_debug.h" #else #define dbg(...) #endif #define ra (scanf("%lld", &__TEMP_READ_VALUE), __TEMP_READ_VALUE) #define LIKELY(exp) __builtin_expect(bool(exp), 1) #define UNLIKELY(exp) __builtin_expect(bool(exp), 0) typedef long long tp; tp __TEMP_READ_VALUE; using namespace std; #pragma endregion HEAD //////////////////////////////////////////////////////////////////////////////// signed main() { tp n = ra, maxk = ra, tar = 0, lg = 0; array a; for (tp i = 1; i <= n; i <<= 1) { ++lg; } for (auto _ : {1, 2, 3}) { for (tp i = 0; i < lg; ++i) { vector t; t.clear(); for (tp j = 1; j <= n; ++j) { if (j & (1ll << i)) { t.push_back(j); } } printf("1 %zu", t.size()); for (auto&& i : t) { printf(" %lld", i); } puts(""); } } puts("2"); fflush(stdout); for (tp i = 0; i < 3 * lg; ++i) { a[i] = ra; } for (tp i = 0; i < lg; ++i) { if (a[i] + a[i + lg] + a[i + lg + lg] <= 1) { tar += 1ll << i; } } printf("%lld\n", tar); return 0; } ////////////////////////////////////////////////////////////////////////////////