#include <bits/stdc++.h>
using namespace std;
int n;
bitset<1005> in;
vector<int> qry(vector<int> elems) {
  in.reset();
  vector<int> ret(n, 0);
  cout << elems.size() << '\n';
  for (auto v : elems) cout << v + 1 << ' ', in[v] = 1;
  cout << '\n';
  fflush(stdout);
  for (int i = 0; i < n; i++) cin >> ret[i];
  return ret;
}
int main() {
  cin >> n;
  vector<int> ans(n, INT_MAX);
  for (int step = 1; step < n; step = step + step) {
    vector<int> cmp[2];
    bool f = 1;
    for (int i = 0; i < n; i++) {
      if (i % step == 0) f ^= 1;
      cmp[f].push_back(i);
    }
    for (int i = 0; i < 2; i++) {
      auto v = qry(cmp[i]);
      for (int j = 0; j < n; j++)
        if (!in[j]) ans[j] = min(ans[j], v[j]);
    }
  }
  cout << -1 << '\n';
  for (int i = 0; i < n; i++) cout << ans[i] << ' ';
  return 0;
}
