#include <bits/stdc++.h>
using namespace std;
vector<int> q, s;
int r[1010], t[1010];
int main() {
  int n;
  scanf("%d", &n);
  fill(r, r + 1010, 1000000010);
  int cur = 1;
  while (cur <= n) {
    q.clear();
    s.clear();
    for (int i = 1; i < n + 1; i++)
      if (cur & i)
        q.push_back(i);
      else
        s.push_back(i);
    printf("%d\n", q.size());
    for (int i = 0; i < q.size(); i++) printf("%d ", q[i]);
    printf("\n");
    fflush(stdout);
    for (int i = 1; i < n + 1; i++) {
      scanf("%d", t + i);
      if (!(cur & i)) r[i] = min(r[i], t[i]);
    }
    printf("%d\n", s.size());
    for (int i = 0; i < s.size(); i++) printf("%d ", s[i]);
    printf("\n");
    fflush(stdout);
    for (int i = 1; i < n + 1; i++) {
      scanf("%d", t + i);
      if (cur & i) r[i] = min(r[i], t[i]);
    }
    cur <<= 1;
  }
  printf("-1\n");
  for (int i = 1; i < n + 1; i++) printf("%d ", r[i]);
  printf("\n");
  fflush(stdout);
  return 0;
}
