子串查询
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 32 M,其他语言64 M
64bit IO Format: %lld

题目描述

给出一个长度为n的字符串sq个查询。对于每一个查询,会输入一个字符串t,你需要判断这个字符串t是不是s的子串。子串的定义就是存在任意下标a<b<c<d<e,那么”s[a]s[b]s[c]s[d]s[e]”就构成s的一个子串。如”abc”的子串有”a””b””c””ab””ac””bc””abc”

输入描述:

第一行两个数n,q。1<=n,q<=1e5。

第二行一个长度为n的字符串s,所有字符都为小写拉丁字符。

接下来q行每行一个字符串t。1<=|t|<=50。

输出描述:

对于每个查询,如果t是s的字串,输出”YES”,否则输出”NO”。每个答案占一行。
示例1

输入

复制
8 4
ababcbaa
abac
accb
aaaa
abcba

输出

复制
YES
NO
YES
YES