n = int(input()) Ans = [] X = [] cnt = 0 for i in range(1, n+1): cnt += 1 print("?", 1, n-1, i, *[a for a in range(1, n+1) if a != i]) t = int(input()) if t: Ans.append(i) for i in range(n-1): x = Ans.pop() l = 0 r = len(Ans) S = [(l, r)] while S: l, r = S.pop() if l == r: continue if r-l == 1: X.append((x, Ans[l])) else: m = (l+r) >> 1 if cnt == 4500: for _ in range(10**11): pass cnt += 1 print("?", 1, m-l, x, *Ans[l: m]) t = int(input()) if t: S.append((l, m)) if cnt == 4500: for _ in range(10**11): pass cnt += 1 print("?", 1, r-m, x, *Ans[m: r]) t = int(input()) if t: S.append((m, r)) else: S.append((m, r)) print("!", len(X)) for l, r in X: print(l, r)