#include <bits/stdc++.h>
using namespace std;
const int N = 1010;
long long ans[N], gt[N];
vector<int> v1[100], v2[100];
void solve(int l, int r, int id) {
  int mid = (l + r) / 2;
  for (int i = l; i < mid; i++) {
    v1[id].push_back(i);
    v2[id + 1].push_back(i);
  }
  for (int i = mid; i < r; i++) {
    v1[id + 1].push_back(i);
    v2[id].push_back(i);
  }
  if (r - l <= 1) return;
  solve(l, mid, id + 2);
  solve(mid, r, id + 2);
}
int main() {
  ios::sync_with_stdio(false);
  cin.tie(0);
  int n;
  cin >> n;
  solve(1, n + 1, 0);
  fill(ans, ans + N, 1e10);
  for (int i = 0; i < 21; i++) {
    if (v1[i].size() == 0) continue;
    cout << v1[i].size() << endl;
    for (int j = 0; j < v1[i].size(); j++) cout << v1[i][j] << " ";
    cout << endl;
    for (int j = 1; j <= n; j++) cin >> gt[j];
    for (int j = 0; j < v2[i].size(); j++)
      ans[v2[i][j]] = min(ans[v2[i][j]], gt[v2[i][j]]);
  }
  cout << -1 << endl;
  for (int i = 1; i <= n; i++) cout << ans[i] << " ";
  cout << endl;
}
