148 - Anagram checker

重新排列一段文字的字母而得到另一段文字有時候還蠻有趣的,例如重組原始文字:”WILLIAM SHAKESPEARE” 可得到重組字:”SPEAK REALISM AWHILE”。

本題請你寫一個程式讀取一部字典及數列文字,請你從字典中選出一些單字,該組單字的字母經過重新排列後可組成原始的文字,請你從字典中找出所有可能的單字組合,且勿與原始的文字相同,若不存在任何一組重組字,請不做任何輸出,甚至連一列空行也不輸出。

Input

輸入資料包含兩部份,每一部份的最後以一列一個#符號作結束,第一部份為一部字典,第二部份為多列文字,你必須從字典中找出每一列的所有重組字。字典會以單字的大小順序作排列且不超過 2000 個,且每個單字一列。所有資料皆為大寫字母,且每個單字不會超過 20 個字元。

Output

請參考範例資料輸出所有原始文字與重組字,並以 “ = “ 隔開。重組字的每個單字須以一個空白字元隔開,且單字必須以字典順序排列輸出。

Sample Input

ABC
AND
DEF
DXZ
K
KX
LJSRT
LT
PT
PTYYWQ
Y
YWJSRQ
ZD
ZZXY
# 
ZZXY ABC DEF
SXZYTWQP KLJ YRTD
ZZXY YWJSRQ PTYYWQ ZZXY
#

Sample Output

SXZYTWQP KLJ YRTD = DXZ K LJSRT PTYYWQ
SXZYTWQP KLJ YRTD = DXZ K LT PT Y YWJSRQ
SXZYTWQP KLJ YRTD = KX LJSRT PTYYWQ ZD
SXZYTWQP KLJ YRTD = KX LT PT Y YWJSRQ ZD