#include <bits/stdc++.h>
using namespace std;
int a[20];
int n;
vector<int> ask(vector<int> v) {
  cout << v.size() << endl;
  for (int i = 0; i < v.size(); i++) {
    if (i) printf(" ");
    printf("%d", v[i] + 1);
  }
  puts("");
  fflush(stdout);
  vector<int> A;
  for (int i = 0; i < n; i++) {
    int a;
    scanf("%d", &a);
    A.push_back(a);
  }
  return A;
}
int ans[1002];
int main() {
  for (int i = 0; i < 1002; i++) {
    ans[i] = INT_MAX;
  }
  cin >> n;
  int a = 1;
  while (a < n) {
    vector<int> v[2];
    for (int i = 0; i < n; i++) {
      int id = i / a;
      if (id % 2) {
        v[1].push_back(i);
      } else {
        v[0].push_back(i);
      }
    }
    vector<int> anss[2];
    anss[0] = ask(v[0]);
    anss[1] = ask(v[1]);
    for (int i = 0; i < v[0].size(); i++) {
      ans[v[0][i]] = min(ans[v[0][i]], anss[1][v[0][i]]);
    }
    for (int i = 0; i < v[1].size(); i++) {
      ans[v[1][i]] = min(ans[v[1][i]], anss[0][v[1][i]]);
    }
    a *= 2;
  }
  puts("-1");
  for (int i = 0; i < n; i++) {
    printf("%d\n", ans[i]);
  }
  return 0;
}
