B3950 [语言月赛 202403] szmgo

题目背景

本题请参考文字题解。 shinzanmono 想要学习 szm 语,但是 szm 语太难了。

题目描述

现代 szm 语采用罗马字表示,其划分音节的规则如下: - 规定元音是字符 `a`、`e`、`i`、`o`、`u` 之一。 - 一般地,一个音节仅包含一个元音,并且以元音结尾。 - 特别地,当且仅当 `n` 后第一个字符不是元音时,`n` 单独作一个音节。 - 一个音节至多包含 $3$ 个字符。 举个例子,`shinzanmono` 的音节依次为 `shi` `n` `za` `n` `mo` `no`;`naku` 的音节依次为 `na` `ku`。 如果一个字符串是空串或者不能按照以上规则划分,则这个字符串不合法。**题目描述中给出的字符串和测试数据中输入的字符串全部合法,你无需进行合法性检验。** 将字符串 $S$ 的 $k$ 个音节依次表示为 $S'_1 \sim S'_k$,将另一个字符串 $T$ 的 $m$ 个音节依次表示为 $T'_1 \sim T'_m$。 如果存在一个正整数 $p$,满足 $p+m-1 \leq k$ 且对于从 $p$ 到 $p+m-1$ 的每个正整数 $i$ 都有 $S'_i=T'_{i - p + 1}$,那么称 $S$「包含」$T$。 在 szm 语中有一些习语,一种习语对应有一些固定的字符串。如果一个字符串「包含」且仅「包含」一种习语的一个固定子串,那么这个字符串是这种习语,否则这个字符串不是这种习语。 例如,当一种习语对应的子串只有 `ao` 时,字符串 `nao` 不是这种习语,因为 `nao` 的音节依次为 `na` `o`,而 `ao` 的音节依次为 `a` `o`。另一个例子是,如果敬语对应的子串为 `desu` 和 `suma`,那么 `kyuusaidesu` 是敬语,而 `kyuusaidesuma` 和 `kyuusaidema` 不是敬语。 某种习语对应 $n$ 个长度不超过 $10$ 的不同子串,给定 $q$ 个字符串,判断每个字符串是否是这种习语。

输入格式

第一行输入两个整数 $n,q$,含义如题面所述。 接下来 $n$ 行,第 $i$ 行输入一个字符串 $c_i$,表示习语对应的第 $i$ 个子串。 接下来 $q$ 行,第 $i$ 行输入一个字符串 $s_i$,询问字符串 $s_i$ 是否是给定习语。

输出格式

输出 $q$ 行,如果字符串 $s_i$ 是给定习语,在第 $i$ 行输出 ` Yes, Commander`;否则在第 $i$ 行输出 `No, Commander`。

说明/提示

### 数据规模与约定 对于 $30\%$ 的数据,保证习语对应的所有字符串都没有由单个元音组成的音节。 对于另外 $30\%$ 的数据,保证习语对应的所有字符串均只包含一个音节。 对于 $100\%$ 的数据,$1 \leq n \leq 10$,$1 \leq q \leq 10^5$,习语对应的每个子串的长度不超过 $10$ 且两两不同,询问的 $q$ 个字符串的字符个数之和不超过 $5 \times 10^5$,输入的所有字符串均只包含小写字符。