Это интерактивная задача. Ваша программа должна в процессе решения обмениваться информацией с программой жюри. Обратите внимание, что после вывода каждого сообщения ваша программа должна очищать потоковый буфер, чтобы выведенная вами информация дошла до программы жюри: например, это делают вызовы _fflush(stdout)_ или _cout.flush()_в C++, _System.out.flush()_ в Java, _flush(output)_ в Pascal, _Console.Out.Flush()_ в C#, _sys.stdout.flush()_ в Python.
В 2020 году произошло невероятное событие — выпуск спин-оффа популярнейшей игры «Мафия» под названием «Комиссар против всех». В ней один игрок, являющийся комиссаром, пытается выявить K мафиози среди N жителей города .
Комиссар имеет возможность задать не более π·N вопросов высшему разуму (т.е. программе жюри). Каждый вопрос выглядит следующим образом. Комиссар выбирает любых K жителей города и спрашивает, есть ли среди них хотя бы один мафиози или нет.
Как только у комиссара будет достаточно информации, чтобы выявить всех мафиози, он завершает игру сообщением о том, кто из жителей города является членом мафии. Если это сообщение неверно или если комиссар попытается задать больше разрешённого количества вопросов, игра завершается победой мафии.
Миллионы желающих стремились стать первыми игроками в эту игру. Удачливее всех оказался Кирилл Комиссаров, студент Сицилийского университета. А на Сицилии, как известно, о мафии знают всё и все. Поэтому за игрой Кирилла будет наблюдать весь его университет. Да что там университет — его игру будет смотреть весь город, вся страна и даже весь мир!
Кирилл очень переживает, что не сможет придумать для заданных K и N правильную стратегию и проиграет мафии. Он просит вас помочь ему и написать программу, которая подскажет ему верные вопросы и абсолютно точно вычислит всех мафиози (за не более чем π·N вопросов).
В первой строке содержатся два целых числа N и K .
После каждого запроса вашей программы программа жюри выводит _MAFIA_, если среди перечисленных вами жителей города был хотя бы один мафиози, или _FAIR_, если среди них не оказалось ни одного мафиози.
Каждый запрос должен состоять из знака вопроса (_?_), после которого через пробел необходимо вывести ровно K различных целых чисел xi (1 ≤ i ≤ K, 1 ≤ xi ≤ N) — номера жителей города.
Сообщение о членах мафии должно начинаться с восклицательного знака (_!_), после которого через пробел должны быть выведены ровно K различных номеров жителей города, которых ваша программа определила как мафиози.
Ответ будет считаться верным, только если ваша программа правильно укажет номера всех K мафиози.
Выводить номера жителей в запросах и сообщении о членах мафии можно в любом порядке.
Напоминаем, что после каждого запроса и вывода сообщения о членах мафии следует очищать потоковый буфер.
Строки «запрос участника» и «ответ системы» в примере приведены лишь для того, чтобы было более понятно, в каком порядке выводятся сообщения. При решении задачи вам не нужно выводить эти строки, программа жюри также не будет выводить такие строки.
Как можно видеть, для пары (3, 4) программа жюри дала ответ _FAIR_, а для пар (2, 3) и (4, 5) был дан ответ _MAFIA_. Отсюда следует, что в этих парах именно жители 2 и 5 были мафиози. Поскольку мафиози всего 2, Кирилл заканчивает игру, указав пару (2, 5).
## Входные Данные
В первой строке содержатся два целых числа N и K .После каждого запроса вашей программы программа жюри выводит _MAFIA_, если среди перечисленных вами жителей города был хотя бы один мафиози, или _FAIR_, если среди них не оказалось ни одного мафиози.
## Выходные Данные
Каждый запрос должен состоять из знака вопроса (_?_), после которого через пробел необходимо вывести ровно K различных целых чисел xi (1 ≤ i ≤ K, 1 ≤ xi ≤ N) — номера жителей города. Сообщение о членах мафии должно начинаться с восклицательного знака (_!_), после которого через пробел должны быть выведены ровно K различных номеров жителей города, которых ваша программа определила как мафиози. Ответ будет считаться верным, только если ваша программа правильно укажет номера всех K мафиози.Выводить номера жителей в запросах и сообщении о членах мафии можно в любом порядке.Напоминаем, что после каждого запроса и вывода сообщения о членах мафии следует очищать потоковый буфер.
## Примеры
Входные данные5 2ответ системы:MAFIAответ системы:MAFIAответ системы:FAIRответ системы:MAFIAВыходные данныезапрос участника:? 1 2запрос участника:? 3 2запрос участника:? 3 4запрос участника:? 5 4запрос участника:! 2 5
## Примечание
Строки «запрос участника» и «ответ системы» в примере приведены лишь для того, чтобы было более понятно, в каком порядке выводятся сообщения. При решении задачи вам не нужно выводить эти строки, программа жюри также не будет выводить такие строки.Как можно видеть, для пары (3, 4) программа жюри дала ответ _FAIR_, а для пар (2, 3) и (4, 5) был дан ответ _MAFIA_. Отсюда следует, что в этих парах именно жители 2 и 5 были мафиози. Поскольку мафиози всего 2, Кирилл заканчивает игру, указав пару (2, 5).
[samples]
**Definitions**
Let $ N, K \in \mathbb{Z}^+ $ with $ 1 \leq K \leq N $.
Let $ M \subseteq \{1, 2, \dots, N\} $ be the unknown set of mafia members, with $ |M| = K $.
Let $ Q \leq \lfloor \pi \cdot N \rfloor $ be the maximum number of allowed queries.
**Constraints**
1. Each query is a subset $ S \subseteq \{1, 2, \dots, N\} $ with $ |S| = K $.
2. For each query $ S $, the jury responds:
- $ \texttt{MAFIA} $ if $ S \cap M \neq \emptyset $,
- $ \texttt{FAIR} $ if $ S \cap M = \emptyset $.
3. The solution must identify $ M $ exactly using at most $ \lfloor \pi \cdot N \rfloor $ queries.
**Objective**
Determine the set $ M $ of size $ K $ by adaptively querying subsets of size $ K $, and output $ M $ via a final line starting with `!` followed by the $ K $ elements of $ M $.