小塔有一个n行m列的矩阵,但是小塔忘记了矩阵每一个元素的具体数值,只记得每一行的异或和以及每一列的异或和,你能帮助小塔恢复矩阵吗?
第一行输入两个整数n,m(1≤n,m≤1000),表示矩阵的行数和列数。
第二行输入n个整数a1,a2,...,an(0≤ai≤109),表示每一行的异或和。
第三行输入m个整数b1,b2,...,bn(0≤bi≤109),表示每一列的异或和。
如果能恢复矩阵,在一行上输出YES,随后n行,每行输出m个整数matij(0≤matij≤1018),表示矩阵的具体数值;否则,直接输出NO。
可以证明,如果能恢复矩阵,一定存在一种解使得矩阵元素的值在0到1018之间。
如果存在多个解决方案,您可以输出任意一个,系统会自动判定是否正确。注意,自测运行功能可能因此返回错误结果,请自行检查答案正确性。
输入
3 3
0 7 6
2 15 12
输出
YES
123
456
789
说明
矩阵每一行的异或和分别为⎩⎨⎧1+2+3=04+5+6=77+8+9=6, 矩阵的每一列的异或和分别$\begin{cases}1+4+7=2\\2+5+8=15\\3+6+9=12\end{cases}$符合条件。
扫码备注加群即可,期待您的到来~
By signing up a CodeFun2000 universal account, you can submit code and join discussions in all online judging services provided by us.