```go
package main
import (
"fmt"
"os"
)
func main() {
var t int
fmt.Scan(&t)
for test := 0; test < t; test++ {
low := 2
high := 999
for low < high {
mid := (low + high) / 2
fmt.Printf("? 1 %d\n", mid)
os.Stdout.Sync()
var resp int
fmt.Scan(&resp)
if resp == -1 {
os.Exit(0)
}
if resp == mid {
low = mid + 1
} else {
high = mid
}
}
fmt.Printf("! %d\n", low)
os.Stdout.Sync()
}
}
```