#include <bits/stdc++.h>
using namespace std;
int mn[1001];
int main() {
  for (int i = 1; i <= 1000; i++) mn[i] = INT_MAX;
  int n;
  cin >> n;
  int deg = 0;
  for (int bn = 1; bn < n; bn *= 2, deg++) {
    vector<int> out1;
    vector<int> out2;
    for (int i = 1; i <= n; i++)
      if (i & bn)
        out1.push_back(i);
      else
        out2.push_back(i);
    cout << (int)out1.size() << endl;
    for (int i : out1) cout << i << " ";
    cout << endl;
    for (int t, i = 1; i <= n; i++) {
      cin >> t;
      if (!((bool)(i & bn))) mn[i] = min(mn[i], t);
    }
    cout << (int)out2.size() << endl;
    for (int i : out2) cout << i << " ";
    cout << endl;
    for (int t, i = 1; i <= n; i++) {
      cin >> t;
      if (i & bn) mn[i] = min(mn[i], t);
    }
  }
  cout << -1 << endl;
  for (int i = 1; i <= n; i++) cout << mn[i] << " ";
  cout << endl;
  return 0;
}
