给定一个大小为 N×M×L 的立方格,其中每个格点 (i,j,k) 要么是白色要么是黑色,格点的坐标均为正整数。设翻转格点 (i,j,k) 颜色的代价为 ai,j,k。求翻转格点颜色的最小代价,使得左下角 (1,1,1) 为黑色,右上角 (N,M,L) 为白色,且任意两个不同格点 (i1,j1,k1) 和 (i2,j2,k2) 至少满足以下条件之一。
- i1>i2
- j1>j2
- k1>k2
- (i1,j1,k1) 是黑色的。
- (i2,j2,k2) 是白色的。
第一行包含三个整数 N,M,L(1≤N,M,L≤5×103,2≤N×M×L≤5×103),表示网格的大小。
接下来 L×N 行中,每行包含一个长度为 M 的字符串,该字符串只由 \t{B} 和 \t{W} 组成。第 (k−1)×N+i 行的第 j 个字符是格点 (i,j,k) 的初始颜色,如果这个字符为 \t{B},则表示格点颜色为黑色,否则为白色。
接下来 L×N 行中,每行包含 M 个不大于 105 的非负整数。第 (k−1)×N+i 行的第 j 个整数表示翻转格点 (i,j,k) 颜色的代价。
Output
输出一行一个整数,表示最小代价。
Example
2 2 2
WW
WW
BB
BB
1 1
1 1
2 2
2 2
5