#include <bits/stdc++.h>
using namespace std;
int M = 1024;
int c[1000 + 5], ans[1000 + 5];
int main() {
  int i, j, n, a;
  cin >> n;
  while (M >= n) M >>= 1;
  for (i = 0; i <= n; i++) ans[i] = 1000000007;
  while (M) {
    vector<int> dsp1;
    vector<int> dsp2;
    for (i = 0; i < n; i++) {
      if (i & M) {
        c[i] = 1;
        dsp1.push_back(i + 1);
      } else {
        c[i] = 0;
        dsp2.push_back(i + 1);
      }
    }
    cout << dsp1.size() << '\n';
    for (i = 0; i < dsp1.size(); i++) cout << dsp1[i] << ' ';
    cout << '\n';
    fflush(stdout);
    for (i = 0; i < n; i++) {
      cin >> a;
      if (!c[i]) ans[i] = min(ans[i], a);
    }
    cout << dsp2.size() << '\n';
    for (i = 0; i < dsp2.size(); i++) cout << dsp2[i] << ' ';
    cout << '\n';
    fflush(stdout);
    for (i = 0; i < n; i++) {
      cin >> a;
      if (c[i]) ans[i] = min(ans[i], a);
    }
    M >>= 1;
  }
  cout << -1 << '\n';
  for (i = 0; i < n; i++) cout << ans[i] << ' ';
  cout << '\n';
  fflush(stdout);
  return 0;
}
