如果字符串 t 既是 s 的真前缀,又是 s 的真后缀,则称 t 是 s 的一个 border。
这是一个重要的字符串概念,关于它有众多的性质和结论。
但是想说的前人们都说过了,所以 CReatiQ 不想研究 border,而打算研究 broder。
他如此定义:若 t 是 s 的一个 border,则称 s 是 t 的一个 broder。
现在他给你 n 个字符串 s_i (1 \leq i \leq n),它们的所有前缀构成字符串集合 S 。
随后进行 m 次询问,每次给定一个字符串 t_i (1 \leq i \leq m) ,你需要回答 S 中有多少个 t_i 的 broder。
输入
第一行是两个正整数 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_i 的 broder。
样例
| 标准输入 复制文本 |
3 2 ababc ababa cbabc a aba |
| 标准输出 复制文本 |
2 1 |
| 标准输入 复制文本 |
4 3 ac cb bbabbbaa bc b cb bb |
| 标准输出 复制文本 |
4 0 2 |
提示
ababc,ababa,cbabc 三个字符串的所有前缀所构成的集合 S 为:
a
ab
aba
abab
ababc
ababa
c
cb
cba
cbab
cbabc
对于 t_1= a,集合 S 中共有 2 个串是 t_1 的 broder:aba,ababa。
注意 S 中的字符串 a 不是 t_i 的 broder,因为 t_1 = a 虽然是 a 的前缀,但不是 a 的真前缀,也不是 a 的真后缀。
对于 t_2= aba,集合 S 中共有 1 个串是 t_i 的 broder:ababa。