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} $ - 入力は全て整数である。