← Home
package main

import (
	"bufio"
	"fmt"
	"os"
)

func main() {
	in := bufio.NewReader(os.Stdin)
	out := bufio.NewWriter(os.Stdout)
	defer out.Flush()

	var t int
	if _, err := fmt.Fscan(in, &t); err != nil {
		return
	}

	for ; t > 0; t-- {
		var n int
		if _, err := fmt.Fscan(in, &n); err != nil {
			return
		}
		if n == -1 {
			return
		}

		l, r := 1, n
		for l < r {
			m := (l + r) / 2
			fmt.Fprintf(out, "? %d %d\n", l, m)
			out.Flush()

			cnt := 0
			for i := 0; i < m-l+1; i++ {
				var x int
				if _, err := fmt.Fscan(in, &x); err != nil {
					return
				}
				if x == -1 {
					return
				}
				if x >= l && x <= m {
					cnt++
				}
			}

			if cnt%2 == 1 {
				r = m
			} else {
				l = m + 1
			}
		}

		fmt.Fprintf(out, "! %d\n", l)
		out.Flush()
	}
}