#include <bits/stdc++.h>
using namespace std;
const int TAM = 1024;
int n;
vector<int> answerQuestion(const bitset<TAM>& q) {
  cout << q.count() << '\n';
  for (int i = 0; i < TAM; ++i)
    if (q[i]) cout << i + 1 << ' ';
  cout << endl;
  vector<int> ans(n);
  for (int& x : ans) cin >> x;
  return ans;
}
vector<bitset<TAM> > Q;
vector<vector<int> > A;
int main() {
  cin >> n;
  for (int p2 = 1; p2 < n; p2 *= 2) {
    bitset<TAM> q1, q2;
    q1.reset();
    q2.reset();
    for (int i = 0; i < n; ++i)
      if (i % (2 * p2) < p2)
        q1[i] = 1;
      else
        q2[i] = 1;
    Q.push_back(q1);
    Q.push_back(q2);
  }
  for (auto& q : Q) A.push_back(answerQuestion(q));
  cout << "-1" << endl;
  for (int i = 0; i < n; ++i) {
    int ansRow = INT_MAX;
    for (int j = 0; j < Q.size(); ++j)
      if (Q[j][i] == 0) ansRow = min(ansRow, A[j][i]);
    cout << ansRow << ' ';
  }
  cout << endl;
  return 0;
}
