from builtins import len import sys input = lambda :sys.stdin.readline()[:-1] ni = lambda :int(input()) na = lambda :list(map(int,input().split())) yes = lambda :print("yes");Yes = lambda :print("Yes");YES = lambda : print("YES") no = lambda :print("no");No = lambda :print("No");NO = lambda : print("NO") ####################################################################### """ 長さ N 1 1 2 3 2 1 3 2 1 1 1 2 2 3 3 1 1 2 2 1 2 1 500 <= 2 ^ 10 """ def ask(b): if len(b) > n: return 0 print("?", len(b), *b, flush=True) return input() == "Yes" n = int(input()) res = [] for i in range(1, n + 1): f = [0] * (len(res) + 1) for cnt in range(1, n + 1): if len(res) + cnt > n: break if not ask([i] * cnt): break ok = 0 ng = len(res) + 1 while ng - ok > 1: mid = (ok + ng) // 2 if ask(res[:mid] + [i] * cnt): ok = mid else: ng = mid f[ok] += 1 nres = [] for j in range(len(res)): for _ in range(f[j]): nres.append(i) nres.append(res[j]) for _ in range(f[-1]): nres.append(i) res = nres if len(res) == n: break print("!", *res, flush=True)