2268. Day5 Ex - broder

如果字符串 t 既是 s 的真前缀,又是 s 的真后缀,则称 ts 的一个 border

这是一个重要的字符串概念,关于它有众多的性质和结论。

但是想说的前人们都说过了,所以 CReatiQ 不想研究 border,而打算研究 broder

他如此定义:若 ts 的一个 border,则称 st 的一个 broder

现在他给你 n 个字符串 s_i (1 \leq i \leq n),它们的所有前缀构成字符串集合 S

随后进行 m 次询问,每次给定一个字符串 t_i (1 \leq i \leq m) ,你需要回答 S 中有多少个 t_ibroder

输入

第一行是两个正整数 n,m (1 \leq n \leq 10^3 , 1 \leq m \leq 3 \times 10^5)

接下来 n 行每行均为一个由小写字母组成的字符串,其中第 i 行表示 s_i

接下来 m 行每行均为一个由小写字母组成的字符串,其中第 i 行表示 t_i

保证所有数据的 \sum |s_i| , \sum |t_i| \leq 5 \times 10^6

输出

输出共有 m 行,其中第 i 行表示 S 中有多少个 t_ibroder

样例

标准输入 复制文本
3 2
ababc
ababa
cbabc
a
aba
标准输出 复制文本
2
1
标准输入 复制文本
4 3
ac
cb
bbabbbaa
bc
b
cb
bb
标准输出 复制文本
4
0
2

提示

样例解释

ababcababacbabc 三个字符串的所有前缀所构成的集合 S 为:

a ab aba abab ababc ababa c cb cba cbab cbabc

对于 t_1= a,集合 S 中共有 2 个串是 t_1broderabaababa

注意 S 中的字符串 a 不是 t_ibroder,因为 t_1 = a 虽然是 a 的前缀,但不是 a 的真前缀,也不是 a 的真后缀。

对于 t_2= aba,集合 S 中共有 1 个串是 t_ibroderababa

登录以提交代码。
单点时限 2 秒
内存限制 512 MB
提交 25
通过 5