#P1620. *【拓扑(难度:4)】破解密语

*【拓扑(难度:4)】破解密语

【题意】

三年级1班的英语老师刚教了同学们前n(n≤26)个字母,就并且布置了一项巨难的作业:要求同学们去英语字典中找到m(m≤100000)个只由这n个字母组成的单词。

假设n=5,m=6,小明找到了6个单词(分别为:dad、eda、ded、ada、abeceda、bac)。为了老师批改作业方便,小明特意将这6个单词按字典序写在作业本上:abeceda、ada、bac、dad、ded、eda。

小红是个调皮份子,特意制造了一份错误的字母对照表:

然后小红用这份错误的字母对照表把小明作业本上的6个单词修改了(但是没有修改单词的先后顺序),修改后的结果如下:cebdbac、cac、ecd、dca、aba、bac。并且最后还写了一句密语(也是用错误字母对照表修改过的)。

小明后来发现小红修改了他的6个单词,小明虽然忘记了自己找到的6个单词原来的样子,但小明还记得这些单词原来是按字典序排列的,而且知道小红没有修改单词的先后顺序。借助这点,小明计划用计算机程序破解了小红的错误的字母对照表,同时也破解了小红最后一句密语。

题目要求在给出n、m,以及m个用错误字母对照表修改过的单词,破解小红的密语。请你帮帮小明。

【输入格式】

第一行是两个整数n、m。

接下来的m行,每行一个单词(小红用错误字母对照表修改过),按原来的字典顺序给出。

下来一行,小红给出的密语。

所有单词和小红的密语的字母个数均小于100。

【输出格式】

一行,为密语破解后的密语。如果无法根据m个单词破解错误字母对照表,则输出0。

【样例输入】

5 6
cebdbac
cac
ecd
dca
aba
bac
cedab

【样例输出】

abcde