This is an interactive problem.
$n$ people sitting in a circle are trying to shuffle a deck of cards. The players are numbered from $1$ to $n$, so that players $i$ and $i+1$ are neighbours (as well as players $1$ and $n$). Each of them has exactly $k$ cards, where $k$ is even. The left neighbour of a player $i$ is player $i - 1$, and their right neighbour is player $i + 1$ (except for players $1$ and $n$, who are respective neighbours of each other).
Each turn the following happens: if a player has $x$ cards, they give $\lfloor x / 2 \rfloor$ to their neighbour on the left and $\lceil x / 2 \rceil$ cards to their neighbour on the right. This happens for all players simultaneously.
However, one player $p$ is the impostor and they just give all their cards to their neighbour on the right. You know the number of players $n$ and the number of cards $k$ each player has initially, but $p$ is unknown to you. Your task is to determine the value of $p$, by asking questions like "how many cards does player $q$ have?" for an index $q$ of your choice. After each question all players will make exactly one move and give their cards to their neighbours. You need to find the impostor by asking no more than $1000$ questions.
Input
The first line contains two integers $n$ and $k$ ($4 \le n \le 10^5$, $2 \le k \le 10^9$, $k$ is even) — the number of players and the number of cards.
Interaction
You can ask questions by printing "? $q$". The answer to this question is the number of cards player $q$ has now ($1 \le q \le n$). The shuffling process starts immediately after your first question, so the answer to the first one is always equal to $k$.
Once you have identified the impostor, you can output the answer by printing "! $p$", where $p$ is the player who is the impostor ($1 \le p \le n$). Then you have to terminate your program.
You have to find the impostor by asking no more than $1000$ questions.
After printing a query do not forget to output end of line and flush the output. Otherwise, you will get Idleness limit exceeded. To do this, use:
fflush(stdout)orcout.flush()in C++;System.out.flush()in Java;flush(output)in Pascal;stdout.flush()in Python;- see documentation for other languages.
Hacks
To make a hack, use the following test format.
The only line of input should contain three integers $n$, $k$ and $p$ ($4 \le n \le 10^5$, $2 \le k \le 10^9$, $k$ is even, $1 \le p \le n$) — the number of people, the number of cards each person has initially, and the position of the impostor.
Note
In the example the cards are transferred in the following way:
$2$$2$$2$$2$— player$1$has$2$cards.$1$$2$$3$$2$— player$1$has$1$card.
After this turn the number of cards remains unchanged for each player.
样例
4 2
2
1
2
3
2
? 1
? 1
? 2
? 3
? 4
! 2
题面与样例版权归 Codeforces 及出题人所有;中文翻译由 AI 生成(CI 管线),如有出入请以原文为准。