AT_past202306_l ビット行列
Description
$ H $ 行 $ W $ 列の非負整数からなる行列 $ A $ が与えられます。
あなたは以下の操作を任意の回数( $ 0 $ 回でもよい)行うことができます。
- $ 1 \le i \le H $ を満たす整数 $ i $ と非負整数 $ X $ を選んで、行列 $ A $ の $ i $ 行目の各要素 $ A_{i,j} $ を $ A_{i,j}\ \mathrm{XOR}\ X $ で置き換える。
- $ 1 \le j \le W $ を満たす整数 $ j $ と非負整数 $ X $ を選んで、行列 $ A $ の $ j $ 列目の各要素 $ A_{i,j} $ を $ A_{i,j}\ \mathrm{XOR}\ X $ で置き換える。
$ H $ 行 $ W $ 列の非負整数および $ -1 $ からなる行列 $ B $ が与えられます。
操作によって $ B_{i,j} \neq -1 $ となる整数の組 $ (i,j) $ 全てに対して $ A_{i,j}=B_{i,j} $ となるようにすることができるか判定してください。
$ \mathrm{XOR} $ とは 非負整数 $ A, B $ のビット単位 $ \mathrm{XOR} $ 、 $ A \oplus B $ は、以下のように定義されます。
- $ A \oplus B $ を二進表記した際の $ 2^k $ ( $ k \geq 0 $ ) の位の数は、 $ A, B $ を二進表記した際の $ 2^k $ の位の数のうち一方のみが $ 1 $ であれば $ 1 $ 、そうでなければ $ 0 $ である。
例えば、 $ 3 \oplus 5 = 6 $ となります (二進表記すると: $ 011 \oplus 101 = 110 $ )。
一般に $ k $ 個の整数 $ p_1, p_2, p_3, \dots, p_k $ のビット単位 $ \mathrm{XOR} $ は $ (\dots ((p_1 \oplus p_2) \oplus p_3) \oplus \dots \oplus p_k) $ と定義され、これは $ p_1, p_2, p_3, \dots p_k $ の順番によらないことが証明できます。
Input Format
入力は以下の形式で標準入力から与えられる。
> $ H $ $ W $ $ A_{1,1} $ $ A_{1,2} $ $ \dots $ $ A_{1,W} $ $ A_{2,1} $ $ A_{2,2} $ $ \dots $ $ A_{2,W} $ $ \vdots $ $ A_{H,1} $ $ A_{H,2} $ $ \dots $ $ A_{H,W} $ $ B_{1,1} $ $ B_{1,2} $ $ \dots $ $ B_{1,W} $ $ B_{2,1} $ $ B_{2,2} $ $ \dots $ $ B_{2,W} $ $ \vdots $ $ B_{H,1} $ $ B_{H,2} $ $ \dots $ $ B_{H,W} $
Output Format
条件を満たすことができるならば `Yes` を、そうでないならば `No` を出力せよ。
Explanation/Hint
### Sample Explanation 1
始め、 $ A $ は以下のようになっています。
```
1 2
3 4
```
$ 2 $ 列目に対して $ X=1 $ として操作を行うと、以下のようになります。
```
1 3
3 5
```
$ 2 $ 行目に対して $ X=2 $ として操作を行うと、以下のようになります。
```
1 3
1 7
```
よって、条件を満たすことができるため `Yes` を出力します。
### Sample Explanation 2
この場合、どのようにしても条件を満たすことができないため `No` を出力します。
### Constraints
- $ 1 \le H,W \le 500 $
- $ 0 \le A_{i,j} < 2^{30} $
- $ -1 \le B_{i,j} < 2^{30} $
- 入力は全て整数である。