#P1419. Vasya and Shifts

Vasya and Shifts

题目描述

Vasya 有 4n4n 个等长字符串组成的集合,每个字符串均由小写英文字母 abcde 组成。该集合被分成 nn 组,每组 44 个相等的字符串。Vasya 还有一个相同长度的特殊字符串 aa,仅由字母 a 组成。

Vasya 想从字符串 aa 中获得一些固定的字符串 bb,为了做到这一点,他可以按任何顺序使用集合中的字符串。当他使用某个字符串 xx 时,字符串 aa 中的每个字母替换为字母表中的下一个字母,替换次数与字符串 xx 中相应字母的字母表位置(从零开始计数)相同。在此过程中,字母表中 e 之后的下一个字母是 a

例如,如果 aa 中的某个字母等于 b,而 xx 中相同位置的字母等于 c,则 aa 中的字母变为等于 d,因为 c 是第二个字母,从零开始计数。如果 aa 中的某个字母等于 e,并且在 xx 的同一位置上为 d,则 aa 中的字母变为 c。例如,如果字符串 aa 等于 abcde,字符串 xx 等于 baddc,则 aa 变为 bbabb

使用过的字符串消失,但 Vasya 可以多次使用相同的字符串。

Vasya 想知道对于 qq 给定的字符串 bb,有多少种方法可以使用给定的 4n4n 字符串集从字符串 aa 获取字符串 bb?如果某组 44 个字符串中使用的字符串数不同,则两种方法是不同的。帮助 Vasya 计算这些问题的答案(模 109+710^9+7)。

输入格式

第一行两个整数 n,mn,m1n5001 \le n \le 500

接下来 nn 行,每行一个长度为 mm 的字符串。

接下来一个整数 qq1q3001 \le q \le 300

接下来 qq 个字符串 bb

输出格式

对于每个询问,输出一个整数表示答案,对 109+710^{9}+7 取模。

1 1
b
2
a
e
1
1
2 4
aaaa
bbbb
1
cccc
5