3026: 题面君

内存限制:256 MB 时间限制:30.000 S
评测方式:文本比较 命题人:
提交:4 解决:3

题目描述

小G正在和众人筹办一场模拟赛,他的主要任务是写题面。

这点小事并不能难倒小G,很快他就写完了题面。在写题面的过程中他注意到,题面里很多的句子都含有相同的单词。因此他想到了一个打发时间的问题:给定一个单词的集合,找出其中每一个单词在所有句子中出现的频率。

更具体地,所有的单词与句子均可以看做一个由二十六个小写英文字母、二十六个大写英文字母、十个阿拉伯数字以及英文句点组成的字符串。一个单词W被称作出现在一个句子S中一次,当且仅当存在一个S的子串T使得W = T。若S中有多个这样的子串T,则算作W在S中出现多次。一个句子中的两个子串算作不同,当且仅当他们的长度不同或所在位置不同。

现在小G给了你所有的句子以及单词集合,他想知道每一个单词在所有句子中出现的次数之和,你能帮助他吗?

输入

第一行一个整数n,表示小G给出的单词个数。

接下来n行每行一个字符串W,表示给出的单词。

接下来一行一个整数m,表示给出的句子个数。

接下来m行每行一个字符串S,表示一个句子。

所有给出的字符串均只包含二十六个小写英文字母、二十六个大写英文字母、十个阿拉伯数字以及英文句点。

输出

输出共n行,每行一个整数,第i行的整数表示按照输入顺序给出的第i个单词在所有句子中出现的次数之和。

样例输入 复制

5
www.
WY
wy
13.
w
3
www.wy213.com
www.wy131627.com
WYwwwy.ss2b13.cn

样例输出 复制

2
1
3
2
11

提示

20%的数据:n = m = 1

另有20%的数据:n = 2 或 m = 2

70%的数据: n ≤ 50 ; m ≤ 20 ; |W|≤ 200 ; |S|≤ 5000

100%的数据:1 ≤ n ≤ 500 ; 1 ≤ m ≤ 100 1 ≤|W|≤ 1000 ; 1 ≤|S|≤ 50000