迷宫是通过在一个 $n$ 行 $m$ 列的矩形网格模式上进行平铺而得到的。结果是一个无限的网格,该模式在四个方向上重复。
形式上,假设我们用整数(包括负整数)表示无限网格的行和列。行号随着我们向下移动而增加,列号随着我们向右移动而增加。坐标为 $(0, 0)$ 的单元格称为原点。迷宫是通过将该模式(不进行镜像或旋转)复制到每一个左上角行号能被 $n$ 整除且列号能被 $m$ 整除的 $n \times m$ 矩形区域中得到的。特别地,模式的左上角被复制到原点,而右下角被复制到坐标为 $(n-1, m-1)$ 的单元格。
为了从特定的单元格逃离迷宫,我们需要通过一系列空单元格到达原点,每一步可以向上、向下、向左或向右移动。
给定一个模式和一系列可能的起始单元格。对于每个起始单元格,确定是否可以逃离迷宫。
输入格式
第一行包含两个整数 $n$ 和 $m$ ($1 \le n, m \le 100$),分别表示模式的行数和列数。接下来的 $n$ 行,每行包含一个长度恰好为 $m$ 的字符串,描述模式的一行。字符 # 表示被阻挡的单元格,点号 . 表示空单元格。
接下来的一行包含一个整数 $q$ ($1 \le q \le 200,000$),表示起始单元格的数量。接下来的 $q$ 行中,第 $k$ 行包含两个整数 $r$ 和 $c$ ($-10^9 \le r, c \le 10^9$),表示第 $k$ 个起始单元格的行号和列号。
原点和所有起始单元格均为空单元格。
输出格式
输出应包含 $q$ 行。第 $k$ 行应包含单词 yes(如果可以从第 $k$ 个起始单元格逃离迷宫)或 no(否则)。
样例
输入 1
6 9 ..#####.. ..#...#.. ......#.. ..#####.. ..#...... ..#...#.. 5 1 4 5 4 1 -5 5 -5 -1000000000 0
输出 1
yes no no yes yes