风车Ⅱ
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld

题目描述

小灰灰和小蓝住在一个 nm 列的网格图中,每个网格上都有一个出售小风车的商店,第 i 行第 j 列的商店有 c_{i,j} 个颜色为 a_{i,j} 的风车。

小灰灰住在第 1 行第 1 列的网格,而小蓝住在第 n 行第 m 列的网格。

有一天小灰灰想去小蓝家,他并不想绕远路(所以每次只会向下或者向右走)。

小灰灰出门前会选择一个幸运颜色,当他沿途经过的格子上商店所出售的风车恰好为他选择的颜色时他会买走这个商店中所有的风车。

小蓝喜欢风车,所以小灰灰请你帮他计算,他走到小蓝家时手上最多有多少个风车。

输入描述:

第一行一个整数 T 代表案例数。

每组案例由若干行组成:

    第一行两个空格分隔的整数分别代表 nm
    接下来 n 行,每行 m 个整数,第 i 行第 j 列的整数即为 a_{i,j}
    接下来 n 行,每行 m 个整数,第 i 行第 j 列的整数即为 c_{i,j}

保证:

0 < n, m, T, a_{i,j} \le 10^5

0 < n\times m \le 2\times 10^5

0 < c_{i,j} \le 10^9

单个测试点中所有案例 n\times m 的和不超过 3\times 10^5

输出描述:

输出共 T 行,第 i 行代表第 i 组案例的答案。
示例1

输入

复制
3
2 3
3 4 2
4 3 2
1 1 1
1 1 1
3 5
9 8 6 4 2
6 4 2 1 4
4 6 4 6 2
1 2 3 4 5
5 4 3 2 1
2 3 6 1 8
1 1
100000
1000000000

输出

复制
2
13
1000000000