#include <bits/stdc++.h>
using namespace std;
long long l, r, mx, a[6][300000], q[300000];
int x;
int main() {
  l = 1;
  r = 10004205361450474ll;
  for (int i = (1); i <= (10000); i++) a[1][i] = i * 2 - 1;
  for (int i = (2); i <= (5); i++)
    for (int j = (1); j <= (10000); j++) {
      a[i][j] = j - 1;
      for (int k = (0); k <= (j); k++) {
        if (a[i][j] >= 10000) {
          a[i][j] += (a[i - 1][10000] - 9998) * (j - k + 1);
          break;
        }
        a[i][j] = a[i - 1][a[i][j] + 1] + 1;
      }
      a[i][j]--;
    }
  for (int i = (5); i >= (2); i--) {
    q[0] = l - 1;
    mx = min(l, 10000ll);
    for (int j = (1); j <= (mx); j++)
      if (q[j - 1] + 1 < 10000)
        q[j] = a[i - 1][q[j - 1] + 1] + 1;
      else
        q[j] = q[j - 1] + a[i - 1][10000] - 9998;
    printf("%I64d", mx);
    for (int j = (1); j <= (mx); j++) printf(" %I64d", q[j]);
    printf("\n");
    fflush(stdout);
    scanf("%d", &x);
    if (x == -1) return 0;
    if (x < mx) r = q[x + 1] - 1;
    l = q[x] + 1;
  }
  printf("%I64d", r - l + 1);
  for (int i = (0); i <= (r - l); i++) printf(" %I64d", l + i);
  printf("\n");
}
