EduBrick

Фальшивая монета

1000 мс · 256 МБ · всё или ничего

Это интерактивная задача.

Среди nn монет ровно одна легче остальных; остальные весят одинаково. Есть чашечные весы: на каждую чашу кладётся одинаковое количество монет, и весы показывают, какая чаша легче, либо что чаши равны.

Найдите лёгкую монету за наименьшее число взвешиваний. Разрешено ⌈log⁡3n⌉\lceil \log_3 n \rceil взвешиваний.

Формат ввода

В начале взаимодействия считайте два числа nn и qq (2≤n≤177 1472 \le n \le 177\,147) — количество монет и разрешённое число взвешиваний.

Формат вывода

Чтобы взвесить, выведите строку ? k a_1 ... a_k b_1 ... b_k: сначала размер чаши kk (1≤k≤⌊n/2⌋1 \le k \le \lfloor n/2 \rfloor), затем kk номеров монет левой чаши и kk номеров правой. Все 2k2k номеров должны быть различны.

В ответ придёт один символ: < — левая чаша легче, > — правая легче, = — равны.

Найдя монету, выведите ! i и завершите работу. Взвешиваний не больше qq. После каждого вывода делайте flush.

Примеры

ввод
3 1
>
вывод
? 1 1 2
! 2
Разбор идеи от автора задачи. Сначала попробуйте сами.
Войдите, чтобы отправлять решения.