def query(q): print("?", len(q), *q) s = input().strip() return s == "Yes" def answer(ans): print("!", *ans) n = int(input().strip()) ans = [] for i in range(1, n+1): pos = [] for cnt in range(1, n+1): if not query([i]*cnt): break ok, ng = 0, len(ans)+1 while ng - ok > 1: mid = (ok + ng) // 2 q = ans[:mid] + [i]*cnt if query(q): ok = mid else: ng = mid pos.append(ok) for p in pos: ans.insert(p, i) answer(ans)