""" https://yukicoder.me/problems/no/2085 これは典型! マージソートだけど、回数足りるのか…? """ import sys from sys import stdin from collections import deque import heapq N = int(stdin.readline()) q = [] for i in range(N): heapq.heappush(q, [1,[i+1]]) while len(q) > 1: _,A = heapq.heappop(q) _,B = heapq.heappop(q) A = deque(A) B = deque(B) C = [] while A and B: print ("?",A[0],B[0],flush=True) cat = int(stdin.readline()) if cat == 1: C.append(A.popleft()) else: C.append(B.popleft()) while A: C.append(A.popleft()) while B: C.append(B.popleft()) heapq.heappush(q, [len(C),C]) print ("!") print (len(q[0][1])-1) print (*q[0][1])