/* -*- coding: utf-8 -*- * * 2828.cc: No.2828 Remainder Game - yukicoder */ #include #include using namespace std; /* constant */ const int MAX_N = 1000; const int MAX_K = 1024; /* typedef */ /* global variables */ int rs[MAX_K]; /* subroutines */ int query(int m) { int k = 0; for (int i = m / 2; i < m; i++) rs[k++] = i; printf("%d %d\n", m, k); for (int i = 0; i < k; i++) printf("%d%c", rs[i], (i + 1 < k) ? ' ' : '\n'); fflush(stdout); int c; scanf("%d", &c); return c; } /* main */ int main() { int n; scanf("%d", &n); int maxm = 1; while (maxm <= n) maxm <<= 1; int sum = 0; for (int m = 2, bi = 1; m <= maxm; m <<= 1, bi <<= 1) { int c = query(m); sum += bi * c; } printf("0 1\n%d\n", sum); fflush(stdout); return 0; }