在 Byteland 将举办一场迷宫机器人竞赛。迷宫呈矩形,被划分为 $n \times m$ 个格子,排列成 $n$ 行 $m$ 列。每个格子要么是空的,要么包含一个障碍物。
参赛者为他们的机器人报名参赛,并依次进入迷宫。每位参赛者会随机获得起始格子和目标格子的坐标。机器人随后被放置在起始格子,必须通过一系列步骤到达目标格子。
为了增加比赛难度,规则规定机器人每一步只能向右或向下移动一个格子。不允许向任何其他方向移动。
机器人从起始格子到目标格子用时最短的参赛者获胜。如果机器人在规定时间内未能到达目标格子,则该参赛者被取消资格。
组织者意识到,如果参赛者获得的坐标不佳,机器人将无法通过任何移动序列到达目标格子。在这种情况下,他们希望给参赛者换一对坐标。
任务
给定一个大小为 $n \times m$ 的迷宫地图以及 $q$ 对起始和目标格子的坐标。请针对每一对坐标,确定是否可以通过一系列向右或向下的移动,从起始格子到达目标格子。
输入格式
第一行包含三个整数 $n, m$ 和 $q$:迷宫的行数、列数以及坐标对的数量。
接下来的 $n$ 行,每行包含 $m$ 个字符,描述迷宫的格子。字符 . 表示空地,字符 # 表示有障碍物的格子。
随后有 $q$ 行,描述坐标对。第 $i$ 行包含四个整数 $r_{1i}, c_{1i}, r_{2i}, c_{2i}$:起始格子的行号和列号,以及目标格子的行号和列号。
满足 $1 \le n, m \le 1000$ 且 $1 \le q \le 10^6$。 对于所有 $i \in \{1, 2, \dots, q\}$,满足 $1 \le r_{1i}, r_{2i} \le n$ 且 $1 \le c_{1i}, c_{2i} \le m$。 对于所有 $i \in \{1, 2, \dots, q\}$,迷宫中坐标为 $(r_{1i}, c_{1i})$ 和 $(r_{2i}, c_{2i})$ 的格子均为空地。 此外,在 20% 的测试用例中,$q \le 300$。
输出格式
输出 $q$ 行。第 $i$ 行应包含单词 YES(如果机器人可以从第 $i$ 个起始格子到达第 $i$ 个目标格子),否则输出 NO。
样例
输入 1
3 4 5 .#.. .##. .... 1 1 3 4 1 3 3 4 1 1 1 1 1 1 2 4 2 1 2 4
输出 1
YES YES YES NO NO