Problem F

Korsord

K�llkod: korsord.*

Ett litet korsord Konrad tycker mycket om att l�sa korsord. Han brukar ofta skicka in l�sningarna till tidningarna, och ibland vinner han priser. Men han tycker att de h�r korsorden med tal, sk Krypton, �r tr�kiga. I s�dana korsord ges egentligen l�sningen direkt, fast man vet inte om det, eftersom den �r krypterad. Varje bokstav �r n�mligen utbytt mot ett unik tal. Ibland f�r man vet vilka bokst�ver som st�r bakom n�gra tal, men inte alltid.

Titta p� korsordet till h�ger. 1=S och 2=O och 3=T. Med lite funderande kan man t�nka sig att 4=A, 5=X och 6=Y. Det beror f�rst�s p� vilka ord som �r korrekta. Som tur var s� har Konrad sammanst�llt en lista p� s�dana ord.

Konrad vill ha ett program som, utifr�n korsordets talrepresentation och vilka ord som finns i korsordet, en ordlista och eventuella givna bokst�ver, r�knar ut alla tals bokst�ver. Konrad garanterar att utifr�n indata finns det alltid exakt en l�sning till korsordet.

Indata
Indata inledes med ett positivt heltal N p� en egen rad som anger antalet korsord. D�refter f�ljer de N korsorden. Varje korsord inleds med en lista med godk�nda ord, var och ett p� en egen rad. Orden �r p� 1-20 bokst�ver vardera, och best�r av de stora bokst�verna A-�. Listan avslutas med tecknet # p� en egen rad. Listan kan inneh�lla upp till 1000 ord, s� det �r viktigt att ert program �r effektivt. D�refter f�ljer heltalen r och k p� en rad, �tskiljda av mellanslag. r st�r f�r antalet rader i korsordet, k f�r antalet kolumner. 0 < r,k < 21. D�refter f�ljer r rader med k heltal p� varje, �tskiljda av mellanslag. Varje heltal �r mellan 0 och 29, inklusive, d�r 0 st�r f�r en svart ruta och 1 till och med 29 st�r f�r n�gon bokstav. Efter de r raderna f�ljer ett heltal o p� en egen rad. Detta tal st�r f�r hur m�nga ord som finns i korsordet. Efter denna rad f�ljer o rader. Varje rad inneh�ller en av bokst�verna V eller L f�r v�gr�t respektive lodr�t. Tecknet f�ljs av mellanslag och sedan tre heltal, �tskiljda av mellanslag. Det f�rsta tv� talen anger koordinaterna ((rad, kolumn), �vre v�nstra h�rnet �r (1,1)) och det tredje talet �r l�ngden p� ordet. Eter dessa rader f�ljer ett heltal b p� en egen rad. Detta tal st�r f�r hur m�nga bokst�ver som �r k�nda. Efter denna rad kommer b rader av k�nda bokst�ver p� formen heltal=bokstav .

Utdata
F�r varje korsord skall det finnas en rad f�r varje tal (bokstav) som finns med i korsordet. Raderna ska ha formatet heltal=bokstav och skall vara i stigande nummerordning. Efter dessa rader skall tecknet # skrivas ut p� en egen rad.

Exempel

Indata:       Utdata:
2             1=S
OST           2=O
SAX           3=T
YXA           4=A
EKA           5=X
#             6=Y
3 3           #  
2 1 3         1=L
0 4 0         2=U
6 5 4         3=N
3             4=D
V 1 1 3       5=M
L 1 2 3       6=E
V 3 1 3       8=�
3	      #  
2=O
1=S
3=T
VISBY
MALM�
KRISTIANSTAD
KARLSKRONA
KALMAR
V�XJ�
J�NK�PING
BOR�S
G�TEBORG
UDDEVALLA
SK�VDE
LINK�PING
KARLSTAD
�REBRO
V�STER�S
ESKILSTUNA
UPPSALA
STOCKHOLM
BORL�NGE
FALUN
G�VLE
SUNDSVALL
H�RN�SAND
�STERSUND
UME�
LUND
LULE�
HALMSTAD
RONNEBY
TROLLH�TTAN
KARLSTAD
#
5 5
0 0 1 0 0
0 1 2 3 4
0 0 1 0 0
2 5 6 8 0
0 0 8 0 0
3
L 1 3 5
V 2 2 4
V 4 1 4
0