#include <bits/stdc++.h>
using namespace std;
int n;
int main() {
  std::ios_base::sync_with_stdio(false);
  cin >> n;
  vector<vector<int> > minqs(20, vector<int>(n, 1000000000));
  vector<int> minrs(n, 1000000000);
  int len = 1;
  for (int i = 0; i < 10; i++) {
    vector<int> inds1(0);
    vector<int> inds2(0);
    int c = 1;
    while (c <= n) {
      for (int j = 0; j < len && c <= n; j++) {
        inds1.push_back(c);
        c++;
      }
      for (int j = 0; j < len && c <= n; j++) {
        inds2.push_back(c);
        c++;
      }
    }
    cout << inds1.size() << "\n";
    for (int j = 0; j < inds1.size(); j++) cout << inds1[j] << " ";
    cout << "\n";
    cout.flush();
    for (int j = 0; j < n; j++) cin >> minqs[i * 2][j];
    if (!inds2.size()) break;
    cout << inds2.size() << "\n";
    for (int j = 0; j < inds2.size(); j++) cout << inds2[j] << " ";
    cout << "\n";
    cout.flush();
    for (int j = 0; j < n; j++) cin >> minqs[i * 2 + 1][j];
    len *= 2;
  }
  for (int i = 0; i < n; i++) {
    int c = i;
    for (int j = 0; j < 10; j++) {
      if (c % 2) {
        minrs[i] = min(minrs[i], minqs[j * 2][i]);
      } else {
        minrs[i] = min(minrs[i], minqs[j * 2 + 1][i]);
      }
      c /= 2;
    }
  }
  cout << -1 << "\n";
  for (int i = 0; i < n; i++) cout << minrs[i] << " ";
  cout << "\n";
  cout.flush();
}
