#include <bits/stdc++.h>
using namespace std;
int dp[1 << 20];
int main() {
  int n;
  scanf("%d", &n);
  if (n <= 3) {
    printf("0\n");
    fflush(stdout);
    return 0;
  }
  int ans = 0, ansi;
  for (int i = 1; i <= n; i++) {
    int val = n / (i + 1) * i;
    if (n % (i + 1) != 0) val += n % (i + 1) - 1;
    val -= i;
    if (val > ans) {
      ans = val;
      ansi = i;
    }
  }
  set<int> s;
  for (int i = 1; i <= n; i++) {
    if (i % (ansi + 1) != 0 && i != n) s.insert(i);
  }
  int lamp[1005];
  memset(lamp, 0, sizeof(lamp));
  while (s.size() > ansi) {
    vector<int> v;
    for (int i = 0; i < ansi + 1; i++) {
      v.push_back(*s.begin());
      s.erase(s.begin());
      lamp[v.back()] = 1;
    }
    printf("%d", v.size());
    for (auto it : v) {
      printf(" %d", it);
    }
    printf("\n");
    fflush(stdout);
    int first = 1;
    scanf("%d", &first);
    for (int j = first; j < first + v.size(); j++) {
      int a = (j - 1) % n + 1;
      if (lamp[a]) {
        s.insert(a);
        lamp[a] = 0;
      }
    }
  }
  printf("0\n");
  fflush(stdout);
  int cnt = 0;
  for (int i = 1; i <= n; i++) {
    cnt += lamp[i];
  }
  return 0;
}
