def f(l, r, m): if len(ans)==5: return 0 used.add((l, r)) k = r-l rr = [] for i in range(l, r): rr.append(i) print(m, k, flush=True) print(*rr, flush=True) c = int(input()) if c==0: return 0 if k==1: for _ in range(c): ans.append(l) return c # left if (l, (l+r)//2) not in used: ret = f(l, (l+r)//2, m) # right if c-ret>0: if r-(l+r)//2==1: for _ in range(c-ret): ans.append((l+r)//2) else: if ((l+r)//2, r) not in used: f((l+r)//2, r, m) return c import sys input = sys.stdin.readline N = int(input()) l = 1 r = N+1 ans = [] used = set() # left ret = f(l, (l+r)//2, N+1) # right if 5-ret>0: f((l+r)//2, r, N+1) print(0, 1, flush=True) print(sum(ans), flush=True)