def ask(aa): print("?", len(aa), flush=True) print(*aa, flush=True) return int(input()) n = int(input()) ans = [] r = n while 1: l = 0 while l+1 < r: m = (l+r)//2 aa = list(range(1, m+1))+ans[::-1] if ask(aa): r = m else: l = m ans.append(r) if ask(ans[::-1]): break print("!",len(ans),flush=True) print(*ans[::-1],flush=True)