# coding: utf-8 # Your code here! import sys sys.setrecursionlimit(10**6) readline = sys.stdin.readline #h,w,k = [int(i) for i in readline().split()] #n = int(input()) #ab = [[int(i) for i in readline().split()] for _ in range(n)] n = int(input()) ans1 = list(range(1,n+1)) ans2 = [] for i in range(n,0,-1): if i == 1 and len(ans2) == 1: ans2.append(i) ans1.pop() break if i == 2 and len(ans2) == 0: ans2 = [2,1] ans1 = [] break ans1.pop() print("? {}".format(len(ans1) + len(ans2))) print(*sorted(ans1 + list(reversed(ans2)))) sys.stdout.flush() if input() == "0": ans2.append(i) print("! {}".format(len(ans1) + len(ans2))) print(*(ans1 + list(reversed(ans2)))) sys.stdout.flush()