#include <bits/stdc++.h>
using namespace std;
vector<int> st[1111][2];
map<int, int> M;
int ans[1111], n, x, INF = 1e9 + 7;
int main() {
  cin >> n;
  for (int i = 1; i <= n; ++i) ans[i] = INF;
  for (int i = 0; i < 10; ++i)
    for (int j = 1; j <= n; ++j)
      if ((j >> i) % 2 == 1)
        st[i][1].push_back(j);
      else
        st[i][0].push_back(j);
  for (int i = 0; i < 10; ++i) {
    M.clear();
    M.clear();
    if (st[i][0].size() > 0) {
      cout << st[i][0].size() << " ";
      for (int j = 0; j < st[i][0].size(); ++j)
        M[st[i][0][j]] = 1, cout << st[i][0][j] << " ";
      cout << endl;
      fflush(stdout);
      for (int j = 1; j <= n; ++j)
        cin >> x, ans[j] = (M[j] == 0 ? min(ans[j], x) : ans[j]);
    }
    M.clear();
    if (!st[i][1].size()) continue;
    cout << st[i][1].size() << " ";
    for (int j = 0; j < st[i][1].size(); ++j)
      M[st[i][1][j]] = 1, cout << st[i][1][j] << " ";
    cout << endl;
    fflush(stdout);
    for (int j = 1; j <= n; ++j)
      cin >> x, ans[j] = (M[j] == 0 ? min(ans[j], x) : ans[j]);
  }
  cout << "-1" << endl;
  for (int i = 1; i <= n; ++i) cout << ans[i] << " ";
  cout << endl;
}
