两个单词的最长公共前缀是指这两个单词开头相同的最长单词。例如,单词 "identity" 和 "idealistic" 的最长公共前缀是 "ide"。
一个数据库包含 $N$ 个单词。
在数据库中搜索查询单词 $W$ 的算法非常简单。它将单词 $W$ 与数据库中的每个单词逐个进行比较。两个单词会逐字符进行比较,直到找到一个不同的字符,或者到达其中一个单词的末尾(此时可以确定这两个单词相等,或者其中一个比另一个更长)。当算法在数据库中找到单词 $W$ 时,它就会终止。
分析该算法表明,找到单词 $W$ 所需的步数等于:$W$ 与之进行比较的单词数量,加上 $W$ 与其比较过的每个单词的最长公共前缀长度之和。
请编写一个程序,计算该算法在寻找 $Q$ 个查询单词中的每一个时所使用的步数。
输入格式
第一行包含一个整数 $N$($1 \le N \le 30000$),表示数据库中的单词数量。
接下来的 $N$ 行,每行包含一个来自数据库的单词。单词按算法与查询单词进行比较的顺序给出。数据库中的所有单词都是互不相同的。
下一行包含一个整数 $Q$($1 \le Q \le 30000$),表示查询的单词数量。
接下来的 $Q$ 行,每行包含一个查询单词。
输入中的所有单词均为长度小于 30 的英文小写字母字符串。
输出格式
针对每个查询单词,输出一行一个整数,表示算法在搜索该单词时所使用的步数。
样例
输入样例 1
5 hobotnica robot hobi hobit robi 4 robi hobi hobit rakija
输出样例 1
12 10 16 7
输入样例 2
8 majmunica majmun majka malina malinska malo maleni malesnica 3 krampus malnar majmun
输出样例 2
8 29 14
说明
在第二个样例中,搜索单词 "krampus" 所需的步数为 8,因为算法只需要将它的第一个字母与数据库中的每个单词进行比较。
在搜索单词 "malnar" 时,对于前三个单词,我们每个需要 3 步;对于剩下的五个单词,我们每个需要 4 步,总共需要 29 步。
为了找到单词 "majmun",我们总共需要 14 步。对于数据库中的第一个单词,我们有 6 次成功的比较,以及 1 步用于确定单词 "majmunica" 比查询单词更长。对于第二个单词,我们同样有 6 次成功的比较,以及最后 1 步用于确定这两个单词相等。在找到该单词后,算法愉快地终止。