В стране Байтландии есть ровно n городов. Страной управляет президент, а в каждом городе сидит некоторое (не обязательно одинаковое, возможно нулевое) количество министров, которое мы назовем размером министерства этого города. В любом отдельно взятом городе министры пронумерованы подряд целыми положительными числами, начиная с 1. В подчинении у министра находятся все министры его города с меньшими номерами. Известно, что ни в каком городе не находится более h министров.
Назовем важностью министра количество его подчиненных, тогда важность i-го министра в любом городе в точности равна i−1. Чтобы члены правительства не перекладывали обязанности друг на друга, были введены следующие правила:
Сегодня президент решил выяснить сколько всего в Байтландии министров. Для этого он может делать два типа запросов:
- i x>> --- уменьшить размер министерства i-го города на x. В этом случае, если x больше количества министров в городе, то ничего не происходит, иначе --- в отставку уходят x министров с максимальной важностью. Разумеется, после этого президент получает контакт нового самого важного министра города i, а министры из других городов теряют связь с ушедшими в отставку.? i>> --- спросить у самого важного министра города i, с каким числом министров (включая его самого) у него есть связь. Если же в городе i не осталось министров, автоответчик сообщит президенту число n. Таким образом, в любом случае, президент узнает в ответ количество городов, в которых на данный момент есть хотя бы столько же министров, сколько и в i-м, включая и сам i-й город.Помогите президенту определить, сколько в Байтландии министров. Даже если их количество уменьшится в процессе выяснения ответа, президент хочет знать, сколько их было изначально. Разумеется, время президента очень ценно, поэтому он успеет сделать не более q описанных выше запросов.
Это интерактивная задача. Помимо этого, каждый тест состоит из нескольких наборов данных.
В первой строке ввода дано целое число t --- количество наборов данных в тесте (1⩽t⩽5). Гарантируется, что во всех тестах, кроме примера, t=5.
Во второй строке ввода через пробел даны целые числа n, h и q --- количество городов, ограничение на количество министров в городе и ограничение на число запросов (1⩽n⩽5000; 1⩽h⩽1,000,000; 1⩽q⩽24,000). Эти ограничения являются общими для всех наборов данных текущего теста.
Далее t раз запускается протокол взаимодействия с интерактором.
Когда ваша программа готова дать ответ на задачу, следует вывести <<! a>> (без кавычек), где a --- предполагаемый ответ. После этого программа должна перейти к следующему набору данных или завершиться в соответствии с описанными в следующей секции правилами.
Это интерактивная задача. При использовании буферизованного вывода не забывайте сбрасывать буфер при выводе запросов (sys.stdout.flush() в Python, System.out().flush() в Java и std::cout.flush() в C++).
В примере из условия происходят следующие действия:
- 2 3>> --- это <<OK>>, можно сделать вывод, что во втором городе было ровно 3 министра.Таким образом, ответ на тест из условия --- 1+3+2=6. Обратите внимание также, что q=6, и было сделано ровно 6 запросов вида <<->> и <<?>>, тогда как запрос <<!>> в это количество не входит.