#import pysnooper #import numpy #import os,re,sys,operator #from collections import Counter,deque #from operator import itemgetter #from itertools import accumulate#,combinations,groupby,combinations_with_replacement,permutations from sys import stdin,setrecursionlimit #from bisect import bisect_left,bisect_right #from copy import deepcopy #import heapq #import math #import string #from time import time #from functools import lru_cache setrecursionlimit(10**6) input=stdin.readline n=int(input().rstrip()) a=list(range(1,n+1)) res=set() for i in range(n): print("?",n-1,flush=True) print(*a[:i],*a[i+1:],flush=True) ans=int(input().rstrip()) if not ans: res.add(a[i]) print("!",len(res),flush=True) print(*res,flush=True)