题目描述
给定一个无限大的二维网格,其中每个单元格要么是空的,要么是被阻挡的。
在网格中,你可以向上、下、左或右移动到相邻的非阻挡单元格。
在四处走动了一会儿后,你注意到被阻挡单元格的模式是周期性的。更准确地说,有一个 R×C 的模式在无限重复。具体工作方式请参见下图。

样例 1 的网络。 R×C 的循环节以红色标记。(0,0) 未被阻挡,而 (1,1) 被阻挡。第一个问题的坐标绘制在 (2,4) 和 (4,3)。自然地,网格在绘制范围之外无限延伸。
给定 Q 个问题,形式如下:“如果我传送到单元格 (sx,sy) ,我能走到单元格 (tx,ty) 吗?”
输入格式
第一行包含两个整数 R 和 C (1≤R,C≤1000),表示网格的行数和列数。
接下来的 R 行,每行包含一个长度为 C 的字符串,由字符 . 和 # 组成。字符 # 表示该单元格被阻挡,. 表示该单元格是空的。
随后是一行,包含整数 Q (1≤Q≤105),表示你需要回答的问题数量。
接下来的 Q 行,每行包含四个整数 sx,sy,tx,ty (0≤sx,sy,tx,ty≤1012),表示一个询问的坐标。保证这些坐标处的单元格均未被阻挡。
输出格式
对于每个询问,如果你可以从单元格 (sx,sy) 走到单元格 (tx,ty) ,则输出 Yes,否则打印 No。
样例 1 输入
3 3
#.#
.#.
..#
5
2 4 4 3
0 0 2 1
0 0 0 0
900000002 900000004 900000004 900000003
2 1 1 2
样例 1 输出
Yes
No
Yes
Yes
No
数据范围
| 子任务 |
分值 |
附加限制 |
| 1 |
5 |
R,C≤2,Q≤5,sx,sy,tx,ty≤500 |
| 2 |
10 |
R,C,Q≤5,sx,sy,tx,ty≤500 |
| 3 |
15 |
R,C,Q≤5,sx,sy,tx,ty≤105 |
| 4 |
20 |
R,C,Q≤5 |
| 5 |
10 |
R,C≤5 |
| 6 |
15 |
R,C≤25 |
| 7 |
25 |
无附加限制 |