AT_abc054_b [ABC054B] Template Matching

题目描述

给定一个 $N$ 行 $N$ 列像素排成的图像 A 和 $M$ 行 $M$ 列像素排成的图像 B。这里像素是图像的最小单位,可以看作为 $1 \times 1$ 的正方形。 图像均为二进制图像,因此可以用白色和黑色这两种颜色来表示每个像素。在输入中,字符 `.` 表示白色像素,`#` 表示黑色像素。 图像 A 用 N 个字符串 $A_1,...,A_N$ 来表示。其中字符串 $a_i$ 的第 $j$ 个字符对应图像 A 中从上数第 $i$ 行,从左数 $j$ 列的像素。 同理图像 B 用 M 个字符串 $B_1,...,B_M$ 来表示。字符串 $b_i$ 的第 $j$ 个字符对应图像 B 中从上数第 $i$ 行,从左数 $j$ 列的像素。 当仅允许图像进行平行移动时,请判断图像 B 是否能被包含在图像 A 中。

输入格式

第一行两个正整数 $N, M$。 接下来 $N$ 行,$N$ 个字符串 $a_1 \cdots a_N$。 接下来 $M$ 行,$M$ 个字符串 $b_1 \cdots b_M$。

输出格式

如果图像 A 中包含图像 B ,则输出 `Yes`,否则输出 `No`。

说明/提示

### 数据范围 $1 \le M \le N \le 50$ ### 样例解释 1 因为图像 B 与图像 A 中左上角的 $2 \times 2$ 子图像以及右下角的 $2 \times 2$ 子图像相匹配,所以输出 `Yes` 。 ### 样例解释 2 由于图像 A 由白色像素组成,图像 B 由黑色像素组成,所以图像 A 不包含图像 B。