L. 迷宫
time limit per test
10 seconds
memory limit per test
1024 megabytes
input
standard input
output
standard output

jzh 有一个 $$$n\times m$$$ 的迷宫,每个格子上都有一面反弹板。反弹板的类型可能是以下两种之一:

  1. $$$/$$$(右斜板):
    • 小球从 左侧 射入 $$$\rightarrow$$$ 反弹向 上方
    • 小球从 右侧 射入 $$$\rightarrow$$$ 反弹向 下方
    • 小球从 上方 射入 $$$\rightarrow$$$ 反弹向 左侧
    • 小球从 下方 射入 $$$\rightarrow$$$ 反弹向 右侧
  2. $$$\backslash$$$(左斜板):
    • 小球从 左侧 射入 $$$\rightarrow$$$ 小球向 下方
    • 小球从 右侧 射入 $$$\rightarrow$$$ 小球向 上方
    • 小球从 上方 射入 $$$\rightarrow$$$ 小球向 右侧
    • 小球从 下方 射入 $$$\rightarrow$$$ 小球向 左侧

迷宫被矩形反弹板包围,如果小球垂直撞击迷宫边界上的反弹板,小球会原路返回。

Djangle 有两个锤子,他可以在小球运动过程中任意时刻锤碎最多两个反弹板(可以先用反弹板反弹后锤碎反弹板),小球经过被锤碎的反弹板时不会发生反弹。

Djangle 锤碎位于第 $$$ i $$$ 行第 $$$ j $$$ 列的反弹板需要耗费 $$$a_{i,j}$$$ 的体力。

注意:Djangle 可以只使用一个锤子或者不使用锤子。

gsh 觉得这个过程很有趣,他想知道:小球从一个格子按照某一方向发射,能否到达另一个格子,如果能,Djangle 最少要花费多少体力。

Input

第一行三个整数 $$$n$$$,$$$m$$$,$$$q$$$($$$1 \le n, m \le 5\times 10^5 $$$,$$$1\le n\times m\leq 4\times 10^6$$$,$$$1 \leq q \leq 10^6$$$) 分别表示迷宫的行,列,和询问次数。

接下来 $$$ n $$$ 行,第 $$$i$$$ 行第 $$$j$$$ 个字符 $$$S_{i,j} \in \{\texttt{\\}, \texttt{/}\}$$$ 表示第 $$$i$$$ 行第 $$$j$$$ 列的反弹板样式。

接下来 $$$ n $$$ 行,每行包含 $$$m$$$ 个正整数,表示 $$$a_{i,j}$$$($$$1\le a_{i,j}\le 10^9$$$)。

接下来 $$$q$$$ 行,每行包含用空格分开的五个询问参数:

起始坐标:$$$(\mathrm{startx}, \mathrm{starty})$$$。

发射方向:$$$\mathrm{direction} \in \{\texttt{N}, \texttt{S}, \texttt{W}, \texttt{E}\}$$$ 分别代表北(上),南(下),西(左),东(右)。

目标坐标:$$$(\mathrm{endx}, \mathrm{endy})$$$。

$$$1\le \mathrm{startx},\mathrm{endx}\le n,1\le \mathrm{starty},\mathrm{endy}\le m$$$。

Output

对于每一个询问,输出一个整数,表示 Djangle 最少需要花费多少体力。如果小球无论如何都不能到达目标格子,输出 $$$-1$$$。

Examples
Input
2 3 1
/\\
///
2 3 1
4 6 5
1 1 E 2 3
Output
3
Input
3 3 5
\\\
\/\
/\\
3 1 1
1 4 1
2 5 1
1 3 N 1 2
3 3 S 2 3
2 3 W 2 3
3 1 S 1 2
2 2 S 1 2
Output
1
0
0
3
1
Note

对于样例一: