PreQueL
Time Limit: 1 Second Memory Limit: 32768 KB
In some simplistic DBMS named PreQueL, the only column type allowed is CHAR(1)
(a single character), and furthermore, its values are restricted to English
upper-case letters ('A' to 'Z'). Table may contain up to 9 columns, numbered
from 1 to 9. Tables themselves are named with lower-case English letters ('a'
to 'z').
The only database query possible first joins all the tables, then selects some
rows according to conditions in one of two forms: either
You must write a PreQueL processor, which, given a tables and a set of conditions,
will produce query result, i.e. those rows of a join satisfying all the conditions.
Resulting rows must be sorted alphabetically.
Input
The first line of input file contains of two integers - number of tables T
and number of conditions D.
Starting from the second line there are T tables represented with number of
rows RN and number of columns CN in the first line of a table, which is followed
by RN lines consisting of exactly CN characters each. D lines with conditions
follow the whole set of tables.
The constraints are: 1 <= T <= 26, 1 <= D <= 50, 1 <= CN <=
9, 1 <= RN <= 1000.
Process to the end of file.
Output
Output file contains result rows, one row per line. No input query will produce more than 1000 rows. The result rows are to be sorted alphabetically.
Sample Input
2 2 3 2 AX BX BY 2 3 ACD BCC a1=b1 a2=X
Sample Output
AXACD BXBCCSubmit
Source: Northeastern Europe 2000, Far-Eastern Subregion