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()
}
}