#P2037. 弦论(another version)

弦论(another version)

Problem Description

这是网络赛中同名题的另一个版本,注意,该版本不是网络赛版本的交互器,在两个版本中,查询内容不同,网络赛版本中的查询是前缀串,该版本中的查询是子串,两个版本的数据范围完全不同!

kuro最近在学习巧克力物理学课程时,老师在解释弦论(String theotry)的相关内容时,提到了下面这个问题。

有nn个字符串,仅由小写英文字母组成,总长为m(m<=2∗105)m(m<=2*10^5),每次操作会进行一次询问,询问某个字符串在所有字符串中作为子串共出现了多少次.

Input Format

每个测试点的第一行为两个数n,mn,m(1≤n≤m≤2∗1051 \leq n \leq m \leq 2*10^5),表示共有nn个字符串,总长为mm。

接下来的nn行,每行有1个字符串,仅由小写英文字母组成。

接下来的一行是一个数字q(1≤q≤2∗105)(1 \leq q \leq 2*10^5),表示询问数量

接下来的qq行,每行有1个字符串,仅由小写英文字母组成.保证所有查询字符串长度的和不超过2∗1052*10^5.

Output Format

对于每次询问,你需要输出一个整数kk,表示询问字符串在所有隐藏的字符串中作为子串共出现了kk次。

Sample

输入 #1

3 9
aaa
aba
aab
2
a
aa

输出 #1

7
3

输入 #2

4 10
a
aaa
aa
aaaa
4
a
aa
aaa
aaaa

输出 #2

10
6
3
1