← Home
package main

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

func main() {
	reader := bufio.NewReader(os.Stdin)
	var n int
	fmt.Fscan(reader, &n)

	ask := func(l, r, k int) int {
		if l > r {
			return 0
		}
		fmt.Printf("? %d %d %d\n", l, r, k)
		var res int
		fmt.Fscan(reader, &res)
		return res
	}

	l, r := 1, n
	for l < r {
		mid := (l + r) / 2
		q1 := ask(1, mid, 2)
		q2 := ask(mid+1, n, 2)
		split := q1 + q2 - (n/2 + 1)
		if (mid-split)%2 != 0 {
			r = mid
		} else {
			l = mid + 1
		}
	}

	fmt.Printf("! %d\n", l)
}