#P0202. 最多修改一个字符

最多修改一个字符

题目描述

给定 nn 个模式串 s1,s2,,sns_1, s_2, \ldots, s_n

qq 次询问,每次询问给定一个字符串 tt,你需要判断:nn 个模式串中是否存在至少一个字符串,它与字符串 tt 恰好有一个字符不同。

即:你需要判断,是否存在至少一个字符串 sis_i,它的长度与 tt 相同,且存在某一下标 pp 满足 si,ptps_{i, p} \neq t_p,同时对于其它下标 jj1jsi1 \le j \le |s_i|jpj \neq p)有 si,j=tjs_{i, j} = t_j

输入格式

输入的第一行包含两个整数 nnmm1n,m31051 \le n,m \le 3 \cdot 10^5),以一个空格分隔。分别表示模式串的数量以及询问次数。

接下来 nn 行,每行包含一个字符串 sis_i

接下来 mm 行,每行包含一个字符串 tt

数据保证所有输入的字符串(包括所有模式串 sis_i 以及询问的字符串 tt)所包含的字符总数不超过 61056 \cdot 10^5,且均由字符 'a'、'b'、'c' 构成。

输出格式

对于每次询问,输出一行。如果存在满足条件的模式串,输出 "YES";否则,输出 "NO"。

样例

2 3
aaaaa
acacaca
aabaa
ccacacc
caaac
YES
NO
NO

说明/提示

数据规模与约定

  • 对于 50%50\% 的数据,n,m300n,m \le 300,所有字符串的长度和不超过 60006000
  • 对于 100%100\% 的数据,1n,m31051 \le n,m \le 3 \cdot 10^5,所有字符串的长度和不超过 61056 \cdot 10^5 且均由 'a'、'b'、'c' 构成