bzoj#P1212. [HNOI2004]L语言

[HNOI2004]L语言

题目描述

标点符号的出现晚于文字的出现,所以以前的语言都是没有标点的。现在你要处理的就是一段没有标点的文章。

一段文章 TT 是由若干小写字母构成,一个单词 WW 也是由若干小写字母构成,一个字典 DD 是若干个单词的集合。

我们称一段文章 TT 在某个字典 DD 下是可以被理解的,是指如果文章 TT 可以被分成若干部分,且每一个部分都是字典 DD 中的单词。

例如字典 DD 中包括单词 {is, name, what, your},则文章 whatisyourname 是在字典 DD 下可以被理解的 因为它可以分成 44 个单词: whatisyourname,且每个单词都属于字典 DD,而文章 whatisyouname 在字典 DD 下不能被理解,但可以在字典 D=D+D'=D+{you} 下被理解。

这段文章的一个前缀 whatis,也可以在字典 DD 下被理解 而且是在字典 DD 下能够被理解的最长的前缀。

给定一个字典 DD,你的程序需要判断若干段文章在字典 DD 下是否能够被理解,并给出其在字典 DD 下能够被理解的最长前缀的位置。

输入格式

第一行是两个正整数 nnmm,表示字典 DD 中有 nn 个单词,且有 mm 段文章需要被处理。

之后的 nn 行每行描述一个单词,再之后的 mm 行每行描述一段文章。

输出格式

对于输入的每一段文章,你需要输出这段文章在字典 DD 可以被理解的最长前缀的位置。

样例输入

4 3
is
name
what
your
whatisyourname
whatisyouname
whaisyourname

样例输出

14
6
0

样例说明

整段文章 whatisyourname 都能被理解 前缀 whatis 能够被理解 没有任何前缀能够被理解

数据规模与约定

对于 100%100\% 的数据,1n,m201\le n,m\le 20,每个单词长度不超过 1010,每段文章长度不超过 1M1M