Problems
Ничего и не терялось
Ничего и не терялось
Разработка новой поисковой системы, которая ведётся группой компании \textit{Giggle}, проходит под девизом "Ничего не терялось". Вы работаете в отделе передовых разработок, и на сегодняшний день вашей задачей является разработка тестовой версии поискового "движка".
Тестовая версия реализует лишь часть функциональности полной версии. В частности, отсутствуют такие функции, как использование логических выражений в запросах, перевод найденных страниц с одного языка на другой и т.д.
Возможности тестовой версии поисковой системы ограничиваются обработкой трёх видов запросов: запросов на добавление, на удаление и на поиск. Система работает следующим образом. В любой момент времени существует множество известных системе \textit{сайтов}, причём для каждого сайта известно множество \textit{ключевых слов}, встречающихся на нём.
Запрос на добавление содержит ключевое слово и название сайта. При его выполнении ключевое слово добавляется в множество ключевых слов, присутствующих на данном сайте. Если этого слова в соответствующем множестве ещё нет, то результатом запроса является \textbf{OK}, в противном случае - \textbf{Already exist}.
Запрос на удаление содержит ключево слово и название сайта. При его выполнении ключевое слово исключается из множества ключевых слов, присутствующих на данном сайте. Если этого слова в соответствующем множестве нет, то результатом запроса является \textbf{Not found},в противном случае - \textbf{OK}.
Запрос на поиск содержит только ключевое слово. Результатом запроса является лексикографически отсортированный список сайтов, содержащих данное ключевое слово. При этом в результат выводятся только первые \textbf{10} сайтов из этого списка.
Задан список запросов. Необходимо вывести результат их последовательного выполнения.
\InputFile
Первая строка входного файла содержит целое число \textbf{n} - количество запросов, которые необходимо обработать (\textbf{0} ≤ \textbf{n} ≤ \textbf{2500}). Каждая из последующих \textbf{n} строк содержит запрос.
Запрос на добавление имеет следующий формат:
\textbf{Add keyword "}<\textbf{keyword}>\textbf{" to }<\textbf{site}>, где <\textbf{keyword}> ключевое слово, <\textbf{site}> - название сайта, на котором появилось это ключевое слово.
Запрос на удаление имеет следующий формат:
\textbf{Remove keyword "}<\textbf{keyword}>\textbf{" from }, где <\textbf{keyword}> - ключевое слово, <\textbf{site}> - название сайта, на котором появилось это ключевое слово.
Запрос на поиск имеет следующий формат:
\textbf{Search "}<\textbf{keyword}>\textbf{"}, где <\textbf{keyword}> - ключевое слово.
Все ключевые слова (<\textbf{keyword}>) состоят из строчных букв латинского алфавита. Длины ключевых слов не превосходят \textbf{30} символов.
Все названия сайтов (<\textbf{site}>) состоят из строчных букв латинского алфавита, символов "косая черта" ("\textbf{/}") и точек ("\textbf{.}"). Длины названий сайтов не превосходят \textbf{100} символов.
\OutputFile
Для каждого запроса выведите его результат. При этом придерживайтесь формата, приведённого в примерах. Не забудьте обратить внимание на второй пример.
Результаты запросов разделяйте строкой из пяти символов "равно" ("\textbf{=}").
Input example #1
12 Add keyword "olympiads" to neerc.ifmo.ru/school/io Add keyword "neerc" to neerc.ifmo.ru Search "olympiads" Search "neerc" Add keyword "olympiads" to neerc.ifmo.ru Search "olympiads" Add keyword "olympiads" to neerc.ifmo.ru/school/io Remove keyword "olympiads" from neerc.ifmo.ru/school/io Search "olympiads" Remove keyword "olymp" from neerc.ifmo.ru Remove keyword "olympiads" from neerc.ifmo.ru Search "olympiads"
Output example #1
OK ===== OK ===== Results: 1 site(s) found 1) neerc.ifmo.ru/school/io ===== Results: 1 site(s) found 1) neerc.ifmo.ru ===== OK ===== Results: 2 site(s) found 1) neerc.ifmo.ru 2) neerc.ifmo.ru/school/io ===== Already exists ===== OK ===== Results: 1 site(s) found 1) neerc.ifmo.ru ===== Not found ===== OK ===== Results: 0 site(s) found