#include <bits/stdc++.h>
using namespace std;
const int N = 100010;
const int MOD = 1000000007;
const int INF = 2147483640;
int n, m, k, u, v, ans, times, cnt[N], f[N];
bool vis[N];
vector<int> G[N];
int main() {
  cin >> n;
  for (int i = 0; i < n; i++) f[i] = INF;
  for (int i = 0; i <= log2(n) + 1; i++) {
    for (int odd = 0; odd <= 1; odd++) {
      int sum = 0;
      for (int j = 0; j < n; j++)
        if (((j & (1 << i)) >> i) == odd) sum++;
      if (sum == n || !sum) continue;
      cout << sum << endl;
      for (int j = 0; j < n; j++)
        if (((j & (1 << i)) >> i) == odd) cout << j + 1 << " ";
      cout << endl;
      fflush(stdout);
      for (int j = 0; j < n; j++) {
        int temp;
        cin >> temp;
        if (((j & (1 << i)) >> i) == (odd ^ 1)) f[j] = min(f[j], temp);
      }
    }
  }
  cout << "-1" << endl;
  for (int i = 0; i < n; i++) cout << f[i] << " ";
  fflush(stdout);
}
