n = int(input()) A = list(range(1, n + 1)) def dc(A): if len(A) <= 1: return A n = len(A) L = dc(A[:n // 2]) R = dc(A[n // 2:]) lp = 0 rp = 0 ret = [] while lp < len(L) and rp < len(R): print("?", L[lp], R[rp], flush=True) t = int(input()) if t: ret.append(L[lp]) lp += 1 else: ret.append(R[rp]) rp += 1 ret += L[lp:] + R[rp:] return ret A = dc(A) print("!") print(n - 1) print(*A)