Условие задачи
В провинции Планг $n = 300$ студентов приняли участие в Plang OI 2026. Среди них некоторые выиграли золотые медали, а другие нет. У студентов в провинции Планг странная привычка. Если они не выиграли золотую медаль, они честно скажут, что не выиграли. Однако, если они выиграли, они скажут, что выиграли с вероятностью $p$, а с вероятностью $1-p$ скажут, что не выиграли. Обратите внимание, что каждый ответ случаен и не имеет отношения к предыдущему. Вы, как тренер провинции Планг, хотите узнать для каждого студента, выиграл ли он золото. Затем вы можете позволить Уне выполнить следующие действия: * Выберите несколько различных студентов и попросите Уну спросить каждого из них, выиграл ли он золотую медаль. Уна сообщит вам количество людей, ответивших "Да".
Линия золотых медалей Plang OI 2025 составляет 571, поэтому вы должны найти ответ в среднем не более чем за 568 запросов. Из-за ограничений Plang OI вы можете предположить, что золотую медаль выиграли ровно 48 студентов.
Рисунок 1: Тренер спрашивает студента, сколько очков он спрятал.
Протокол взаимодействия
Это интерактивная задача. Не забывайте сбрасывать буфер вывода после каждого вывода. Чтобы сбросить вывод, вы можете использовать:
fflush(stdout) или cout.flush() в C/C++;
System.out.flush() в Java и Kotlin;
* sys.stdout.flush() в Python.
Сначала вы должны прочитать целое число $T$ ($T = 20$), указывающее количество тестовых случаев. Для каждого тестового случая вы должны прочитать целое число $n$ ($n = 300$), указывающее количество студентов. Чтобы сделать запрос, вы должны вывести одну строку в формате "? $k$ $P_1$ $P_2$ ... $P_k$" (где $1 \le P_i \le n$, $P_i \ne P_j$ для $1 < i < j \le k$). Затем прочитайте целое число, указывающее ответ, который нашла Уна. Если ваш запрос недействителен, или если вы сделаете более $568T$ запросов в общей сложности, программа жюри выведет -1. Прочитав -1, вы должны немедленно выйти, чтобы избежать неопределенного поведения.
Если вы получили ответ, вы должны вывести одну строку в формате "! $s_1$ $s_2$ ... $s_n$", где $s_i = 1$ указывает, что $i$-й студент получил золото, иначе $0$. Затем прочитайте одно слово OK или WA, указывающее, правильный ли ваш ответ. Если ваша программа получает WA, вы должны немедленно выйти, чтобы избежать неопределенного поведения.
Обратите внимание, что жюри не является адаптивным, то есть ответ не изменится после ваших запросов. Всего будет не более 10 тестов.
Примеры
Входные данные 1
1 2
Выходные данные 1
? 2 1 2 ? 1 1 ? 1 2 ! 0 1
Примечание
Обратите внимание, что пример приведен только для справки, он не удовлетворяет $T = 20$ и $n = 300$, и не появится в финальных тестах. Предоставляется инструмент тестирования, который поможет участникам разрабатывать и тестировать свои решения. Вы можете скачать этот инструмент из вложений. Выполнение инструмента с опцией "-h" должно описать, как использовать инструмент. Инструмент тестирования будет реализовывать только некоторые сценарии тестирования и только некоторую функциональность реальной программы жюри.