#include <bits/stdc++.h>
using namespace std;
int nw[1005];
bool hsh[1005];
int main() {
  int n, l, r, mid, i, a, b, j, k, ct;
  scanf("%d", &n);
  for (i = 1; i <= n; i++) nw[i] = 1000000005;
  for (i = 1; i <= n; i *= 2) {
    ct = 0;
    memset(hsh, 0, sizeof hsh);
    for (j = 1; j <= n; j += i * 2)
      for (k = j; k < i + j && k <= n; k++) ct++;
    if (ct != 0) {
      printf("%d\n", ct);
      for (j = 1; j <= n; j += i * 2)
        for (k = j; k < i + j && k <= n; k++) printf("%d ", k), hsh[k] = 1;
      printf("\n");
      fflush(stdout);
      for (j = 1; j <= n; j++) {
        scanf("%d", &a);
        if (!hsh[j]) nw[j] = min(nw[j], a);
      }
    }
    ct = 0;
    memset(hsh, 0, sizeof hsh);
    for (j = i + 1; j <= n; j += i * 2)
      for (k = j; k < i + j && k <= n; k++) ct++;
    if (ct != 0) {
      printf("%d\n", ct);
      for (j = i + 1; j <= n; j += i * 2)
        for (k = j; k < i + j && k <= n; k++) printf("%d ", k), hsh[k] = 1;
      printf("\n");
      fflush(stdout);
      for (j = 1; j <= n; j++) {
        scanf("%d", &a);
        if (!hsh[j]) nw[j] = min(nw[j], a);
      }
    }
  }
  printf("-1\n");
  for (i = 1; i <= n; i++) printf("%d ", nw[i]);
  printf("\n");
  fflush(stdout);
}
