寻找字符串
题号:NC220859
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld

题目描述

在遥远的海边有一个城镇,它的形状是一个 m*n 的矩阵,在每一个行列相交的点上有一个房子。有一天小王放学后,在回家的路上,他发现每一个房子门牌上都有一个字母,恰好他在今天的英语课上学了不少单词,他想知道是否存在连续的门牌号使得这些字母恰好构成这个单词,但他并不会解决这个问题,所以能请聪明的你帮帮他吗?(斜方向,或直线方向的连续存在一种符合要求的情况即可,且该过程到达边界终止)。

输入描述:

第一行有两个整数m,n,表示存在m行n列的字符。
接下的m行,每行n列字符。
下一行有一个整数q,表示询问的数量。
接下来的q行,每行一个字符串s,表示一个单词。
1 <= n,m <= 100
1 <= q <= 10
1 <= s.length <= 20

输出描述:

对于每一个询问,输出一个"YES"表示存在,或者"NO"表示不存在。
示例1

输入

复制
3 4
asdw
frzx
fesd
4
asdw
frd
zds
sra

输出

复制
YES
YES
NO
YES