import os from itertools import combinations import random import copy n = int(input()) x = list(range(1,n+1)) def check(x, ch): if ch is not None: x.remove(ch) print(f'? {len(x)}') print(' '.join(map(str, x))) result = input() if result == '1': return True else: return False buff = set() def trier(x): for ch in [None] + copy.copy(x): if ch not in buff: '''<83><81><82><83><83><82>''' if check(copy.copy(x), ch): if ch is not None: x.remove(ch) buff.add(ch) else: buff.add(ch) return x ans = trier(x) print(f'! {len(ans)}') print(' '.join(map(str,ans)))