Добрый эксперимент
ограничение по времени на тест
3 секунды
ограничение по памяти на тест
256 мегабайт
ввод
стандартный ввод
вывод
стандартный вывод

Известный алхимик Шу Такер специализируется на создании химер. Известно, что «рецепты» (алгоритмы создания) химер кодируются правильными скобочными последовательностями.

Напомним, что скобочная последовательность из скобок '(' и ')' называется правильной, если ее можно получить из корректного арифметического выражения удалением всего, кроме скобок. Более формально определим рецепт химеры, то есть правильную скобочную последовательность, следующим образом:

Так, например, «(()(()))» получается алхимией из «()(())», которая, в свою очередь, получается объединением из химер «()» и «(())». Обе из них получаются из базового пустого рецепта алхимией.

Рецепт последнего достижения Шу Такера, разговаривающей химеры, можно представить как правильную скобочную последовательность $$$s$$$ длины $$$n$$$. Это несомненно потрясающее достижение, и рецепт строго засекречен, однако у Эдварда и Альфонса есть определенные сомнения на счет использованных материалов...

Эдвард может делать запросы формата «? $$$l$$$ $$$r$$$», и на каждый такой запрос узнавать, является ли отрезок рецепта $$$s_l s_{l+1} \ldots s_r$$$ правильной скобочной последовательностью. Иными словами, если выписать только символы $$$s$$$ с $$$l$$$-го по $$$r$$$-й включительно, будет ли полученная скобочная последовательность удовлетворять данному выше определению.

Не превышая разрешенное число запросов, полностью раскройте секретный рецепт $$$s$$$.

Входные данные

В первой строке ввода даны два целых числа $$$n$$$ и $$$q$$$ — длина последовательности и максимальное число разрешенных запросов, соответственно ($$$1 \le n, q \le 2 \cdot 10^5$$$; $$$n$$$ четно; $$$q \geq n - 3$$$).

После ввода этих значений запускается протокол взаимодействия с интерактором.

Выходные данные

В конце взаимодействия с интерактором выведите ваше предположение о том, чему равна строка $$$s$$$, в формате, описанном в протоколе взаимодействия с интерактором.

Протокол взаимодействия

Гарантируется, что к моменту запуска протокола взаимодействия с интерактором строка $$$s$$$ зафиксирована, и что $$$q$$$ запросов достаточно.

Взаимодействие с интерактором проходит в виде запросов со стороны вашей программы и ответов со стороны интерактора. Вы можете выполнить запрос, описанный в условии, не более $$$q$$$ раз, где $$$q$$$ зависит от подзадачи.

Чтобы сделать запрос, выведите строку «? $$$l$$$ $$$r$$$» ($$$1 \le l \le r \le n$$$) в отдельной строке. После чего также на отдельной строке интерактор выведет «YES», если соответствующий отрезок $$$s$$$ является правильной скобочной последовательностью, и «NO» иначе.

Чтобы вывести ответ на задачу, выведите строку «! $$$t$$$», где $$$t$$$ — ваше предположение о том, чему равна загаданная $$$s$$$. После этого протокол взаимодействия с интерактором завершается. Во избежание получения некорректных вердиктов программа вашего решения тоже должна завершиться. Вывод ответа на задачу не учитывается в счет общего числа сделанных запросов.

Если в какой-то момент ваша программа превышает лимит в $$$q$$$ запросов, или значения $$$l$$$ или $$$r$$$ в очередном запросе выходят за границы $$$s$$$, интерактор завершится с вердиктом WA (Wrong Answer).

Важно: не забывайте после каждой выведенной строки сбрасывать буфер вывода, чтобы интерактор получил ваш запрос. Это можно сделать с помощью std::cout.flush() в C++, System.out.flush() в Java и sys.stdout.flush() в Python, а также аналогичными командами в других языках. Если ваша программа не сбрасывает буфер вывода, она получит вердикт TL (Time Limit Exceeded) или IL (Idleness Limit Exceeded).

Система оценки

Баллы за подзадачи начисляются только в случае, если все тесты соответствующей подзадачи и необходимых подзадач успешно пройдены.

ПодзадачаБаллыДоп. ограничения Необходимые подзадачи Информация о проверке
0–примеры из условияполная
15$$$n = 6$$$; $$$q = 100$$$0первая ошибка
26$$$n = 10$$$; $$$q = 10\,000$$$0, 1первая ошибка
37$$$n = 22$$$; $$$q = 59\,000$$$0 – 2первая ошибка
410 «глубина» $$$s$$$ не превышает $$$2$$$; $$$q = 2 \cdot 10^5$$$первая ошибка
510$$$n = 500$$$; $$$q = 2 \cdot 10^5$$$0 – 3первая ошибка
616$$$n = 10\,000$$$; $$$q = 2 \cdot 10^5$$$0 – 3, 5первая ошибка
78$$$n = 500$$$; $$$q = 500$$$0 – 3, 5первая ошибка
812$$$q = n$$$0 – 7первая ошибка
96$$$q = n - 1$$$0 – 8первая ошибка
107$$$q = n - 2$$$0 – 9первая ошибка
1113$$$q = n - 3$$$0 – 10первая ошибка

Под глубиной последовательности в четвертой группе подразумевается максимальная разность между числом открывающих и закрывающих скобок на любом отрезке от начала $$$s$$$ до произвольной другой позиции.

Примеры

Входные данные
6 100

YES

YES
Выходные данные

? 1 4

? 3 6

! ()()()
Входные данные
6 100

NO

NO

YES
Выходные данные

? 1 4

? 3 6

? 3 4

! ((()))