Вы отправились исследовать таинственный мир, заполненный различными существами и предметами. Поскольку многие объекты в этом мире не были открыты ранее, вы дали каждому объекту название. Все названия состоят из заглавных латинских букв и имеют длину от $$$1$$$ до $$$4$$$ символов.
В ходе наблюдений вы заметили, что объекты со временем меняются. Это вы решили записать в журнал с помощью правил. Всего получилось $$$N$$$ правил. Правило номер $$$i$$$ гласит, что объект $$$A_i$$$ со временем превратится в объект $$$B_i$$$. Такое правило записывается как «$$$A_i$$$ IS $$$B_i$$$». Заметим, что объекты $$$A_i$$$ и $$$B_i$$$ могут совпадать, в этом случае превращение всё равно происходит.
Сегодня вы вернулись в исследовательский центр и решили заняться теоретическими экспериментами. Вам дали план, состоящий из $$$Q$$$ запросов. У вас нет при себе экземпляров изученных объектов, поэтому при выполнении запросов приходится опираться на записи в журнале. Каждый запрос задаётся одним из двух способов:
Важная часть любой исследовательской деятельности — ведение отчёта об ошибках. В ходе проведения эксперимента может произойти ошибка одного из двух типов:
Попробуйте для каждого запроса первого вида определить, во что превратится данный объект или какая ошибка возникнет в результате выполнения запроса. Обратите внимание, что в одном запросе не могут произойти две ошибки сразу.
В первой строке дано целое число $$$N$$$ — изначальное количество правил ($$$1 \le N \le 50000$$$).
Далее идут $$$N$$$ строк. Строка номер $$$i$$$ имеет вид «$$$A_i$$$ IS $$$B_i$$$» (без кавычек) и описывает правило, согласно которому объект $$$A_i$$$ превращается в объект $$$B_i$$$.
В следующей строке дано целое число $$$Q$$$ — количество запросов ($$$1 \le Q \le 50000$$$).
Далее идут $$$Q$$$ строк. Строка номер $$$j$$$ имеет вид «? $$$C_j$$$» или «+ $$$C_j$$$ IS $$$D_j$$$» (без кавычек) и описывает запрос первого или второго вида соответственно. Запросы выполняются в том порядке, в котором они даны во входных данных. Гарантируется, что существует хотя бы один запрос первого вида.
Все объекты названы строками длины от $$$1$$$ до $$$4$$$, состоящими из заглавных латинских букв. Гарантируется, что не существует объекта «IS». Также в описании правил встречается слово «IS», написанное заглавными латинскими буквами, а в описаниях запросов встречаются символы «?» (код $$$63$$$) и «+» (код $$$43$$$).
Для каждого запроса первого вида, если ошибка не возникает, выведите в отдельной строке название объекта, в который превратится данный объект. Если ошибка возникает, выведите в отдельной строке «INFINITE LOOP» для ошибки первого типа или «TOO COMPLEX» для ошибки второго типа (в обоих случаях без кавычек).
$$$$$$ \begin{array} {|c|c|c|c|}
\hline \textbf{Подзадача} & \textbf{Баллы} & \textbf{Ограничения} & \textbf{Необх. подзадачи} \\ \hline 1 & 20 & N, Q \le 50, \text{нет запросов на добавление, нет ошибок} & \\ \hline 2 & 18 & N, Q \le 50 & 1 \\ \hline 3 & 20 & N, Q \le 1000 & 1, 2 \\ \hline 4 & 22 & N, Q \le 50000, \text{нет ошибок} & 1 \\ \hline 5 & 20 & N, Q \le 50000 & 1, 2, 3, 4 \\ \hline \end{array} $$$$$$
Баллы за каждую подзадачу начисляются только в случае, если все тесты для этой подзадачи и необходимых подзадач успешно пройдены, а также решение корректно работает на примерах из условия.
Обратите внимание на необычные ограничения в подзадачах $$$1$$$ и $$$4$$$. В них гарантируется, что при выполнении превращений не возникает ошибок. В подзадаче $$$1$$$ также гарантируется, что нет запросов второго вида.
3 BABA IS YOU BOX IS KEY KEY IS BOX 8 + BABA IS YOU ? BABA + YOU IS YOU ? BABA ? BOX + BOX IS BOX ? BOX ? LOVE
YOU YOU INFINITE LOOP TOO COMPLEX LOVE