Это интерактивная задача.
Ayush устал запоминать пароль от своего замка и разработал новую схему для установки своего пароля. У замка есть \(k\) позиций, где каждая позиция может содержать целые числа от \(1\) до \(n\). Пароль \(P\) представляет собой последовательность из \(k\) целых чисел, каждое из которых находится в диапазоне \([1, n]\), \(i\)-й элемент которой входит в \(i\)-ю позицию замка.
Чтобы установить пароль для своего замка, Ayush придумывает массив \(A\) из \(n\) целых чисел в диапазоне \([1, n]\) (не обязательно различных). Затем он выбирает \(k\) непустых попарно непересекающихся подмножеств индексов \(S_1, S_2, ..., S_k\) \((S_i \underset{i \neq j} \cap S_j = \emptyset)\) и устанавливает свой пароль как \(P_i = \max\limits_{j \notin S_i} A[j]\). Другими словами, \(i\)-я позиция пароля равна максимуму по всем элементам \(A\), индексы которых не принадлежат \(S_i\).
Вам даны подмножества индексов, выбранных Ayush. Вам нужно угадать пароль. Чтобы сделать запрос, вы можете выбрать непустое подмножество индексов массива и узнать максимум по всем элементам массива с индексами в этом подмножестве. Вы можете задать не более 12 запросов.
Протокол взаимодействия
Чтобы задать запрос, выведите одну строку:
- В начале выведите "? c" (без кавычек), где \(c\) \((1 \leq c \leq n)\) обозначает размер подмножества запрашиваемых индексов, после чего выведите через пробел \(c\) различных целых чисел в диапазоне \([1, n]\) — индексы, о которых вы хотите задать запрос.
Для каждого запроса вы получите целое число \(x\) — максимальное значение в массиве среди элементов с запрошенными индексами. Если подмножество запрашиваемых индексов недопустимо или вы превысили количество запросов (например, один из индексов больше, чем \(n\)), то вы получите \(x = -1\). В этом случае вы должны немедленно прекратить программу.
Когда вы угадали пароль, выведите одну строку "!" (Без кавычек), за которой через пробел следуют \(k\) целых чисел — позиции пароля.
Угадывание пароля не учитывается при подсчете количества запросов.
После этого вы должны прочитать строку. Если вы угадаете пароль правильно, вы получите строку "Correct". В этом случае вам следует продолжить решение оставшихся наборов входных данных. Если предполагаемый пароль неверен, вы получите строку "Incorrect". В этом случае вы должны немедленно прекратить программу.
Интерактор не адаптивный. Массив \(A\) не изменяется с запросами.
После вывода запроса не забудьте вывести перевод строки и сбросить буфер вывода. В противном случае вы получите вердикт Решение «зависло». Для сброса буфера используйте:
- fflush(stdout) или cout.flush() в C++;
- System.out.flush() в Java;
- flush(output) в Pascal;
- stdout.flush() в Python;
- смотрите документацию для других языков.
Формат взломов
Чтобы взломать решение, используйте следующий формат взломов:
В первой строке должно содержаться одно целое число \(t\) \((1 \leq t \leq 10)\) — количество наборов входных данных.
Первая строка каждого набора входных данных должна содержать два целых числа: \(n\) и \(k\) \((2 \leq n \leq 1000, 1 \leq k \leq n)\) — размер массива и количество подмножеств соответственно. Следующая строка должна состоять из \(n\) целых чисел в диапазоне \([1, n]\) — массива \(A\). Далее должны следовать \(k\) строк. \(i\)-я строка должна содержать целое число \(c\) \((1 \leq c \lt n)\) — размер подмножества \(S_i\), за которым должны следовать \(c\) различных целых чисел в диапазоне \([1, n]\) — индексы, принадлежащие подмножеству \(S_i\).
Пересечение любых двух подмножеств должно быть пустым.
Примечание
Массив \(A\) в примере равен \([1, 2, 3, 4]\). Длина пароля составляет \(2\). Первый элемент пароля — это максимум из \(A[2]\), \(A[4]\) (поскольку первое подмножество содержит индексы \(1\) и \(3\), мы берем максимум по остальным индексам). Второй элемент пароля — это максимум из \(A[1]\), \(A[3]\) (поскольку второе подмножество содержит индексы \(2\), \(4\)).
Не забудьте считать строку "Correct" / "Incorrect" после угадывания пароля.
Примеры
| № | Входные данные | Выходные данные |
|
1
|
1 4 2 2 1 3 2 2 4
1
2
3
4
Correct
|
? 1 1
? 1 2
? 1 3
? 1 4
! 4 3
|