智力游戏
题号:NC202839
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
Special Judge, 64bit IO Format: %lld

题目描述

    阿杰,整个acm队里唯一一个数学学院的家伙,有一个癖好------制造神奇的智力游戏。

    这不,他又搞出来一个游戏。

    这个游戏是在一个的方格里面进行的。开始的时候,所有的方格均为白色的,现在,你需要做的,就是根据提示,计算出哪些格子应该为黑色格子,并把它涂黑。那么这些提示是啥呢?就是出现在这个方格每一行每一列前面的数字,它的目的是告诉你,这一行(列)应该出现的几组黑色方格各有多少个。

    我们来举一个例子。在某一行中,提示给出了三个数字,那么从这一行的某个位置起将依次出现两个相邻的黑色方格,若干白色方格,一个黑色方格,若干白色方格,四个连续的黑色方格,若干白色方格(可为)。一种可能的情况如下图。

    

    好的,相信你已经明白这个游戏该怎么愉快地玩耍了。现在,给你一个这样的谜题,充满了上述提示,你能将整个谜底输出出来吗?(你肯定可以的,这是送分题!)

输入描述:

输入数据总共若干行。

第一行两个整数,,分别表示游戏的方格的列数和行数。

接下来行每一行有若干数字,这些数字表示该列从上到下将会出现的连续黑色方格的数量。每一行用一个数字作为结束。

接下来行每一行有若干数字,这些数字表示该列从左到右将会出现的连续黑色方格的数量。每一行用一根数字作为结束。

输出描述:

将游戏最终的谜底打印出来。其中一个方格占据两位,即一个空白格子用两个空格表示("  "),一个黑色格子用两个#表示("##")。(对于所有给定的输入数据,保证只有唯一一个解)
示例1

输入

复制
4 3
2 0
0
1 1 0
3 0
2 0
1 1 0
1 2 0

输出

复制
    ####
##    ##
##  ####

说明

样例所对应的谜题如下: