题号:NC21351
                        时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
            空间限制:C/C++/Rust/Pascal 512 M,其他语言1024 M
             64bit IO Format: %lld
        
     
    题目描述
        
        
    
            
            定义二进制矩阵为每个元素都是0或者1的矩阵
 现在有一个二进制矩阵,但是有些格子缺失了,用 '?'表示
 现在知道这个矩阵每行的信息
 并且知道矩阵每列的信息,但是不知道具体这些列是对应这个矩阵的哪一列
 
 给每个缺失的格子补上后,求满足条件的字典序最小的二进制矩阵
 矩阵的字典序为将每行的字符拼接后的字符串代表的字典序
                            输入描述:
                                                    第一行输入两个整数n,m表示二进制矩阵的行数和列数(1 ≤ n,m ≤ 30)
接下来n行每行m个字符,第i行描述矩阵的第i行的信息
接下来m行每行n个字符,第i行描述矩阵某一列的信息
                                                                            输出描述:
                                                    输出一个字符矩阵表示字典序最小的矩阵
                                                                            
                                    
                                    
                                    
                        
                            示例4
                        
                        
                            
                                输入
                                复制
                                
                                
                                    4 3
??0
11?
?01
1?1
1???
?111
0?1?
                                 
                             
                            
                                                     
                     
                                                        备注:
                子任务1: n*m <= 25
子任务2: n*m <= 100
子任务3: 无限制