#P1409. 77377

77377

题目描述

国际移动电话公司(ICPC)冒着未来的风险,投入资源开发新型手机,计划配备网页浏览器、邮件客户端、即时通讯工具等先进通信功能。除非ICPC成员能完成这项艰巨任务,否则公司将逐渐失去市场份额。

现在,你需要帮助ICPC为小型移动终端开发一款有趣的文本输入软件。如你所知,目前大多数手机有1212个按键:0099的数字键以及特殊键*#\#。尽管公司雄心勃勃,但仍决定遵循当前标准和惯例。你不能更改标准按键布局,并需注意以下标准按键字母分配:

按键 字母 按键 字母
22 a,b,ca,b,c 66 m,n,om,n,o
33 d,e,fd,e,f 77 p,q,r,sp,q,r,s
44 g,h,ig,h,i 88 t,u,vt,u,v
55 j,k,lj,k,l 99 w,x,y,zw,x,y,z

这意味着只能使用88个按键进行文本输入。

大多数ICPC手机用户非常匆忙,不愿浪费哪怕一次按键时间。你的文本输入软件必须节省用户时间,使每个字符只需按一次键。例如,程序应能将按键序列"7737777377"转换为单词"presspress",或将"7737784328886677377843288866"转换为"press the buttonpress\ the\ button"。

然而,由于一个数字可能对应多个字母,构建这样的输入软件似乎不可能。例如,"7737777377"不仅可能表示"presspress",还可能是768768种(4×4×3×4×44 \times 4 \times 3 \times 4 \times 4)其他字符串。但好消息是,ICPC新款手机内存足够存储词典。你可以编写程序过滤掉无效单词(即词典中未列出的字符串)。

输入

输入包含多个数据集,每个数据集表示一个词典和一个按键序列,格式如下:

n
word1
...
wordn
sequence

其中: • nn是正整数,表示词典中的单词数量。

• 接下来nn行,每行是一个由小写字母aazz组成的单词。

• 词典中单词顺序任意,且不重复。

• 最后一行sequencesequence是按键序列,仅包含数字2299

假设: • 词典最多包含100100个单词。

• 每个单词长度在115050之间。

• 按键序列长度在11300300之间。

• 输入以一行00结束。

输出

对于每个数据集,输出所有能由按键序列表示的词典单词组合。每个组合应占一行,单词按词典序排列(若第一个单词相同则比较第二个,以此类推)。相邻单词用单个空格分隔,最后一个单词后加句点".."。

输出所有有效组合后,另起一行输出两个连字符"--"。如果没有匹配组合,只需输出"--"。

假设每个数据集的输出行数不超过2020行(不包括终止行)。

样例输入 1

5
push
press
the
button
bottom
77377843288866
4
i
am
going
go
42646464
3
a
b
c
333
0

样例输出 1

press the button.
-- 
i am go go i.
i am going.
--
--

来源 Japan 2001