Capoo's Acronym Zero
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
Special Judge, 64bit IO Format: %lld

题目描述

yz 和他的朋友 ea 和 zech 一起养了一群 Capoo。

这些 Capoo 非常聪明,但不知道为什么,它们并没有从三人那里学到怎么写算法题,而是出于某种原因开始研究语言学,并发明了一套自己的暗语。这门暗语的编写规则非常简单:一个句子可以认为是一个字符串,中间仅包含大写英文字母和小写英文字母,每个大写字母对应一个单词。而与之对应的暗语则是依次取出句子中每个单词的第一个字符,把它们直接拼接到一起。例如:句子 WetaDigital 对应的暗语为 WD 。

很明显,这套暗语规则十分简单,但不同句子所对应的暗语之间容易发生冲突。以之前的例子为例,短语 WesternDigital 所对应的暗语也是 WD ,这时,当听到一只 Capoo 提到 WD 时,三人就会困惑于它指代的到底是什么意思。yz 已经准备了一个包含很多句子的词典,但还需要一个翻译程序在听到 Capoo 所提到的暗语时快速找到这个暗语都对应了词典中的哪些句子。事实上,这个程序早已写好,可惜这里空白的地方太小,写不下,现在复现这个程序的任务被交给了你。

输入描述:

1 行为两个整数 nq(0 \leq n \leq 10^41 \leq q \leq 10^4) 为词典中的句子数和询问翻译程序的次数。

2 行到第 n + 1 行为词典,每行为一个句子,内容仅包含二十六个英文字母的大小写形式。

n + 2 行到第 n + q + 1 行,每行一个字符串,为本次需要查询查询的暗语。

输出描述:

对于每次询问,输出格式如下:

1 行为一个整数 sum ,为所询问的这个暗语在词典中能对应上的句子数目。

2 行到第 sum + 1 行,每行为一个当前所询问的暗语所对应的句子。请按输入时句子在词典中的相对顺序输出。
示例1

输入

复制
5 3
WetaDigital
wordDrive
wikipediadancer
WesternDigital
wonderfulday
WD
wd
Wd

输出

复制
2
WetaDigital
WesternDigital
0
0
示例2

输入

复制
10 5
Zech
EternalAlexander
YZ
RoSeMoe
InnovationInChina
ColorlessGreenIdeasSleepFuriously
EveryFrogTriesReallyNew
EclipseFirstTheRestNowhere
CleverThinkingBoostsProblemSolving
RouSiMian
YZ
EA
Z
EFTRN
RSM

输出

复制
1
YZ
1
EternalAlexander
1
Zech
2
EveryFrogTriesReallyNew
EclipseFirstTheRestNowhere
2
RoSeMoe
RouSiMian

备注:

一个单词最多长 20 个字符, 一个句子最多有 50 个单词。保证一个句子的总长度不超过 1000

为什么题目叫 Capoo's Acronym Zero 呢?好问题,我也想知道。