eolymp
bolt
Try our new interface for solving problems

PreQueL

В некоторых упрощенных СУБД называемых PreQueL, единственный допустимый тип названия - CHAR(1) (один символ), а кроме того, его название должно состоять только из английских заглавных букв (от \textbf{А} до \textbf{Z}). Таблица может содержать до \textbf{9 }столбцов, пронумерованных от \textbf{1 }до \textbf{9}. Таблицы называются строчными английскими буквами (от \textbf{a }до \textbf{z}). Единственно возможный запрос к базе данных сначала \textbf{соединяет} все таблицы (см. пояснение к задаче в конце условия); потом выбирает некоторые строки в соответствии с условиями. Бывают условия двух видов: <\textbf{column}> = <\textbf{value}> или <\textbf{column1}> = <\textbf{column2}>, например, \textbf{a2} = \textbf{A} или \textbf{b1} = \textbf{с4}. Все условия должны выполняться одновременно, как если бы они были соединены с помощью оператора \textbf{AND}. Вы должны написать обработчик запросов к PreQueL, который, с учетом данных ему таблиц и набора условий, будет выдавать результат запроса, то есть те строки которые удовлетворяют всем условиям. Строки в ответе должны быть упорядочены лексикографически по алфавиту. \InputFile Первая строка содержит два целых числа - количество таблиц \textbf{t }(\textbf{1} ≤ \textbf{t} ≤ \textbf{26}) и количество условий \textbf{d} (\textbf{1 }≤ \textbf{d }≤ \textbf{50}). Начиная со второй строки даются \textbf{t }таблиц. В первой строке описания таблицы даются размеры таблицы - \textbf{r_n} и \textbf{c_n} (\textbf{1} ≤ \textbf{c_i} ≤ \textbf{9}, \textbf{1 }≤ \textbf{r_i} ≤ \textbf{1000}). Далее идёт \textbf{r_n} строк, состоящих ровно из \textbf{c_n} символов каждая. После таблицы идут \textbf{d }строк с условиями. \OutputFile Вывести строки результата, каждую строку таблицы выведите в отдельной строке. Гарантируется, что ни один входной запрос не выдаст более \textbf{1000 }строк. \Note \begin{itemize} \item Строки в выведенном файле должы быть упорядочены по возрастанию. \item Если мы \textbf{соединяем} таблицы \textbf{A} и \textbf{B} без применения каких-либо условий, число строк в результате будет |\textbf{A}|\textbf{·}|\textbf{B}|. \item Пусть у нас есть три таблицы (каждая таблица представлена в виде списка строк): \{A, B\}, \{C, D\}, \{XX, YY, ZZ\}. Их \textbf{соединением} будет таблица из \textbf{12 }строк \{ACXX, ACYY, ACZZ, ADXX, ADYY, ADZZ, BCXX, BCYY, BCZZ, BDXX, BDYY, BDZZ\}. \end{itemize}
Zaman məhdudiyyəti 2 saniyə
Yaddaşı istafadə məhdudiyyəti 256 MiB
Giriş verilənləri #1
2 2
3 2
AX
BX
BY
2 3
ACD
BCC
a1=b1
a2=X
Çıxış verilənləri #1
AXACD
BXBCC
Mənbə 2012 Харьков, Зимняя школа, День Сергея Копеловича, Задача G