An Instruction
小 S 分别沿图 (1) 中的两条虚线将卡片向后对折,均得到了图 (2) 所示的有重叠部分的卡片。他定义,对于图 (2) 中的 x 点,设该点对应到的两个重叠的网格的权值从上到下分别为 a,b,定义它的“折叠代价”Fx=a−b。

此外,对于整个图 (2) 以及其对应的折叠虚线,定义该虚线的“指示程度”为图 {\gyr(2)} 中共 n×2n 个点的“折叠代价”之和。
现在你只知道两块 n×n 的区域中所有网格的权值(即图 (1) 中阴影部分)和虚线 AB,CD 分别对应的“指示程度” D1,D2,请你判断是否存在一种填补空白部分权值的方法,使得 D1,D2 是正确的值。
注意:你填写的值应当是任意的,即,不论正负、大小,但必须是整数。
输入格式
本题有多组数据。
第一行一个整数 T,表示数据组数。
接下来若干行,描述每组数据。对于每组数据:
- 第一行三个整数 n,D1,D2,意义如题述。
- 接下来 n 行,每行 n 个整数,表示左上角区域所有网格的权值,将这些数记作 ai。
- 接下来 n 行,每行 n 个整数,表示右下角区域所有网格的权值,将这些数记作 bi。
输出格式
对于每组数据,输出仅一行一个字符串。若存在一种方案,输出 Yes;否则,输出 No(大小写敏感)。
样例
输入样例 1
文本
2
2 0 0
1 1
1 1
1 1
1 1
1 1 0
1
0
输出样例 1
样例 1 说明
- 对于数据 1,显然只要把网格全部填上 1 即可。
- 对于数据 2,容易发现不存在任何一种方案。
样例 2
见选手目录下的 instruct/instruct2.in 与 instruct/instruct2.ans。
该样例与测试数据 3∼6 满足同样的约束条件。
样例 3
见选手目录下的 instruct/instruct3.in 与 instruct/instruct3.ans。
该样例与测试数据 7∼10 满足同样的约束条件。
数据规模与约定

对于 100% 的数据,有 1≤T≤10,1≤n≤300,−109≤ai,bi≤109,−1018≤D1,D2≤1018。