WordWhiz 是一款风靡的单词拼图游戏,挑战玩家在有限的尝试次数内猜出一个秘密单词。该游戏使用一个包含 $N$ 个单词的词典。词典中的每个单词都由五个互不相同的英文小写字母组成。
游戏开始时,玩家会看到一个由若干行组成的空网格。每一行允许进行一次猜测。玩家的任务是用词典中包含的单词填满各行,直到找到秘密单词,或者用完所有可用的行。
在玩家提交一次猜测后,游戏会通过给写有该猜测的单元格着色来提供反馈。反馈由三种颜色组成:
- 灰色(“X”):该单元格中的字母不在秘密单词中。
- 黄色(“!”):该单元格中的字母在秘密单词中,但位置不正确。
- 绿色(“*”):该单元格中的字母在秘密单词中,且位置正确。
为了便于说明,我们假设秘密单词是 “hotel”,而玩家提交的猜测是 “blast”。在这种情况下,第一、第三和第四个单元格会变成灰色,因为 “b”、“a” 和 “s” 不在秘密单词 “hotel” 中。然而,第二和第五个单元格会变成黄色。这表明 “l” 和 “t” 是秘密单词的一部分,但位置不对:“l” 应该在第五个位置而不是第二个,而 “t” 应该在第三个位置而不是第五个。该反馈将表示为 “X!XX!”。
现在,如果玩家提交 “heart” 作为猜测,第三和第四个单元格仍会变成灰色,因为 “a” 和 “r” 不在 “hotel” 中。第二和第五个单元格会再次变成黄色,因为 “t” 再次出现在第五个位置(而不是第三个),而这一次 “e” 出现在第二个位置(而它应该在第四个位置)。然而,对于这次猜测,第一个单元格会变成绿色,表明 “h” 在猜测 “heart” 和秘密单词 “hotel” 中都是第一个字母。该反馈将表示为 “*!XX!”。
最后,如果玩家提交 “hotel” 作为猜测,所有单元格都会变成绿色,因为这就是秘密单词。该反馈将表示为 “*”。
上述反馈如下图所示。
不久前,你的公司在网站上添加了 WordWhiz 游戏,现在希望通过添加显示历史游戏记录的功能来增强该游戏。然而,系统只存储了每次猜测的反馈,而没有存储提交的单词。这意味着可能无法准确恢复每次游戏记录中提交的猜测。在投入更多精力之前,公司希望对记录的游戏过程进行分析。
给定一个由五个字母组成的单词词典、秘密单词(包含在词典中)以及某次游戏记录的反馈,你的任务是确定词典中有多少个单词可以作为每次猜测提交。
输入格式
第一行包含一个整数 $N$ ($1 \le N \le 1000$),表示词典中单词的数量。
接下来的 $N$ 行,每行包含一个字符串,表示词典中的一个单词。所有字符串均不相同,且每个字符串都由五个互不相同的英文小写字母组成。第一个字符串是该场游戏的秘密单词。
下一行包含一个整数 $G$ ($1 \le G \le 10$),表示该场游戏中的猜测次数。
接下来的 $G$ 行,每行包含一个长度为五的字符串,表示某次猜测的反馈。反馈字符串仅包含字符 “X”、“!” 和 “*”,分别代表灰色、黄色和绿色。
保证输入描述的是一个合法的游戏记录。
输出格式
输出 $G$ 行,其中第 $i$ 行包含一个整数,表示词典中可以作为第 $i$ 次猜测提交的单词数量。
样例
输入样例 1
6 hotel weary heart blast pilot vague 3 X!XX! *!XX! *****
输出样例 1
1 1 1
说明 1
唯一的可能性是玩家按照题目描述中写的那样提交了猜测。
输入样例 2
3 scale table maple 5 X!X** X!X** X!X** X!X** X!X**
输出样例 2
2 2 2 2 2
说明 2
当提交 “table” 或 “maple” 作为猜测时,反馈均为 “X!X**”(因为秘密单词是 “scale”)。这意味着对于该场游戏记录,玩家在每次尝试中都可以提交这两个单词中的任意一个。
输入样例 3
4 scale table maple smile 4 X!X** *XX** X!X** *****
输出样例 3
2 1 2 1
输入样例 4
5 latin mrica think solve debug 1 *****
输出样例 4
1