#include <bits/stdc++.h>
using namespace std;
int n;
int reqs[10][2][1000];
int main() {
  scanf("%d", &n);
  for (int i = 0; i < 10; i++)
    for (int j = 0; j < 2; j++)
      for (int k = 0; k < n; k++) reqs[i][j][k] = INT_MAX;
  for (int i = 0; i < 10; i++) {
    for (int j = 0; j < 2; j++) {
      vector<int> rows;
      for (int k = 0; k < n; k++) {
        if (((k >> i) & 1) == !j) {
          rows.push_back(k);
        }
      }
      if (rows.size() >= 1 && rows.size() < n) {
        printf("%d\n", (int)rows.size());
        for (int x : rows) printf("%d ", x + 1);
        printf("\n");
        fflush(stdout);
        for (int k = 0; k < n; k++) {
          scanf("%d", reqs[i][j] + k);
        }
      }
    }
  }
  printf("-1\n");
  for (int i = 0; i < n; i++) {
    int mn = INT_MAX;
    for (int j = 0; j < 10; j++) {
      mn = min(mn, reqs[j][((i >> j) & 1)][i]);
    }
    printf("%d ", mn);
  }
  printf("\n");
  fflush(stdout);
}
