#include <bits/stdc++.h>
using namespace std;
int main() {
  int n;
  scanf("%d", &n);
  int MX = (1 << n);
  vector<int> ans(n, -1);
  vector<vector<int>> toAsks;
  for (int i = 0; i < 10; ++i) {
    vector<int> toAsk1;
    vector<int> toAsk2;
    int mx = (1 << i);
    for (int j = 0; j < n; ++j) {
      if (j & mx) {
        toAsk1.push_back(j + 1);
      } else {
        toAsk2.push_back(j + 1);
      }
    }
    if (toAsk1.size() > 0 && toAsk1.size() != n) toAsks.push_back(toAsk1);
    if (toAsk2.size() > 0 && toAsk2.size() != n) toAsks.push_back(toAsk2);
  }
  for (auto x : toAsks) {
    printf("%d\n", x.size());
    vector<bool> hasI(n, false);
    for (auto y : x) {
      hasI[y - 1] = true;
      printf("%d ", y);
    }
    printf("\n");
    fflush(stdout);
    for (int i = 0; i < n; ++i) {
      int p;
      cin >> p;
      if (!hasI[i]) {
        if (ans[i] == -1 || ans[i] > p) ans[i] = p;
      }
    }
  }
  printf("-1\n");
  for (int i = 0; i < n; ++i) printf("%d ", ans[i]);
  printf("\n");
  fflush(stdout);
  return 0;
}
