微软的Word有一个拼写检查功能,如果你拼写错了单词,它会用红线标出以示提醒,然后给出可能正确的单词。现在要你编程实现类似的一个系统:给定一个词表以及一个待检查的单词,判断这个单词是否在词表中,如果不在词表中,程序应该给出一个相似的单词。在寻找相似的单词时,你只需要考虑如下几个简单的情况:
1. 漏写了一个字母,如把 "abacus" 误拼写为 "abacs"。
2. 多写了一个字母,如把 "abacus" 误拼写为 "abaacus"。
3. 将某处的一个字母写成了另一个字母,如 "abacus" 误拼写为 "abacup"。
编程实现这个系统。
输入数据的第一行是一个由小写字母组成的字符串,表示要进行拼写检查的单词。
第二行是一个数 N(1\leq N\leq100),表示词表中词的数目。
接下来有 N 行,每行都是一个由小写字母组成的字符串,代表词表中的每一个单词。
所有字符串的长度在 2 到 20 之间。
仅输出一个字符串:
1. 如果要检查的单词在词表中出现,则原样输出该单词。
2. 如果要检查的单词在词表中未出现,但在词表中找到相似的单词,则输出在词表中和它相似的那个单词。如果在此表中找到多个相似单词,仅输出在输入文件中最靠前的一个。
3. 如果要检查的单词在词表中未出现,并且在词表中找不到与它相似的单词,输出 `NOANSWER`。
abstaine 4 abacus abstract abstain abstainer
abstain
对于 100\% 的数据,1 \leq |S| \leq 1000, N \leq 100 ,其中 |S| 为字符串长度