n = int(input()) Ans = [] X = [] cnt = 0 for i in range(1, n+1): print("?", 1, n-1, i, *[a for a in range(1, n+1) if a != i]) t = int(input()) if not 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 print("?", 1, m-l, x, *Ans[l: m]) t = int(input()) if t: S.append((l, m)) 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)