U600933 海啸谜题Pro
题目背景
(题目提供者:[_Handou](http://www.luogu.com.cn/user/1252271)&[qiaochu](http://www.luogu.com.cn/user/809639))
# 此题无数据
@数据组
题目描述
海啸谜题是一种有趣的谜题
玩家会得到一个 $n\times m$ 的网格,如:
```
|_|_|_|_|
|_|_|_|_|
```
是一个$ 2 \times 4$ 的网格。
对于每一个方格 $(i , j)$,规定与其相邻的右侧格子为 $(i , j+1)$,与其相邻的下方格子为 $(i+1 , j)$。特殊地,我们规定左上角的格子为 $(0 , 0)$。
网格中每一个格子的初始状态为白色(```|_|```),玩家将按照以下规则将网格中每一个格子填充为黑色(```|#|```)或白色(```|_|```):
我们定义 $row[i]$ 表示在我们要填的方格中第 $i$ 行要填多少个黑色格子,定义 $col[j]$ 表示在我们要填的方格中第 $j$ 列要填多少个黑色格子。你要根据 $row$ 数组和 $col$ 数组将方格填充完整。
我们再定义海啸谜题答案的字典序:
我们有两个已经填好的海啸谜题
```
1 1 1 1 1 1
1 |#|_|_| 1 |_|#|_|
1 |_|#|_| 1 |#|_|_|
1 |_|_|#| 1 |_|_|#|
```
规定一个格子 $(i,j)$ 的编号为 $i\times m+j$。
我们将两个海啸谜题的答案从双方编号最小的黑色格子开始比较。如果两个黑色格子编号不同,拥有编号较小的格子的答案的字典序小。如果两个黑色格子编号相同,就比较双方编号第二小的黑色格子,以此类推。上方样例里字典序小的是第一个答案。
现在,你判断一个海啸谜题是否有解。如果没有,输出 ```NO```。否则输出一个字典序最小的答案。
输入格式
第一行两个整数 $n,m$。
第二行 $n$ 个整数,表示 $row$ 数组。
第三行 $m$ 个整数,表示 $col$ 数组。
输出格式
输出一个字典序最小的答案。如果无解,输出```NO```。
说明/提示
对于 $100%$ 的数据:$1\le n,m \le 2\times10^2$,$0\le row[i] \le m$,$0\le col[i] \le n$。