#include <bits/stdc++.h>
using namespace std;
const int NUM = 100010;
int n;
int a[1100], na, b[1100], nb;
int mi[1100];
int ans[1100];
inline bool at(int i, int x) { return i & (1 << x); }
int main() {
  scanf("%d", &n);
  for (int i = 1; i <= n; ++i) ans[i] = 1000000007;
  for (int k = 0; k < 10; ++k) {
    na = nb = 0;
    for (int i = 1; i <= n; ++i) {
      if (at(i, k))
        a[na++] = i;
      else
        b[nb++] = i;
    }
    if (na == 0 || nb == 0) continue;
    printf("%d\n", na);
    for (int i = 0; i < na; ++i) printf("%d%c", a[i], " \n"[i + 1 == na]);
    fflush(stdout);
    for (int i = 1; i <= n; ++i) scanf("%d", &mi[i]);
    for (int i = 1; i <= n; ++i)
      if (!at(i, k)) ans[i] = min(ans[i], mi[i]);
    printf("%d\n", nb);
    for (int i = 0; i < nb; ++i) printf("%d%c", b[i], " \n"[i + 1 == nb]);
    fflush(stdout);
    for (int i = 1; i <= n; ++i) scanf("%d", &mi[i]);
    for (int i = 1; i <= n; ++i)
      if (at(i, k)) ans[i] = min(ans[i], mi[i]);
  }
  printf("-1\n");
  for (int i = 1; i <= n; ++i) printf("%d%c", ans[i], " \n"[i == n]);
  fflush(stdout);
  return 0;
}
