#include <limits.h> #include <stdio.h> #define N 1000 void query(int *ww, int *aa, int k, int n) { int i; printf("%d\n", k); for (i = 0; i < k; i++) printf("%d ", ww[i]); printf("\n"); fflush(stdout); for (i = 1; i <= n; i++) scanf("%d", &aa[i]); } int main() { int i, j, n; static int mm[N + 1]; scanf("%d", &n); for (i = 1; i <= n; i++) mm[i] = INT_MAX; for (i = 0; 1 << i <= n; i++) { int aa[N], bb[N], acnt, bcnt; int amin[N + 1], bmin[N + 1]; acnt = bcnt = 0; for (j = 1; j <= n; j++) { if ((j & 1 << i) == 0) aa[acnt++] = j; else bb[bcnt++] = j; } query(aa, amin, acnt, n); query(bb, bmin, bcnt, n); for (j = 1; j <= n; j++) { int min; min = (j & 1 << i) == 0 ? bmin[j] : amin[j]; if (mm[j] > min) mm[j] = min; } } printf("-1\n"); for (i = 1; i <= n; i++) printf("%d ", mm[i]); printf("\n"); fflush(stdout); return 0; }