#include <cstdio> #include <iostream> #include <fstream> #include <vector> #include <list> #include <map> #include <set> #include <queue> #include <stack> #include <bitset> #include <algorithm> #include <sstream> #include <iomanip> #include <cmath> #include <cstdlib> #include <ctype.h> #include <cstring> #include <string> #include <ctime> #include <cassert> #include <utility> using namespace std; #define LIM 1005 char xrin[15][LIM], xrina[15][LIM], hm[LIM][LIM], col[LIM], lin[LIM]; int n, m, h; int main() { // freopen("date.in", "r", stdin); // freopen("date.out","w", stdout); scanf("%d %d %d\n", &n, &m, &h); for(int i = 0; i < n; i++) { for(int j = 0; j < m; j++) { scanf("%c", &hm[i][j]); } scanf("\n"); } // // for(int i = 0; i < n; i++) { // for(int j = 0; j < m; j++) { // printf("%c", hm[i][j]); // } // printf("\n"); // } for(int i = 0; i < h; i++) { for(int j = 0; j < m; j++) { scanf("%c", &xrin[i][j]); } scanf("\n"); } for(int j = 0; j < m; j++) { for(int i = 0; i < h; i++) { if(xrin[i][j] == '#') { col[j]++; } } } for(int i = 0; i < h; i++) { for(int j = 0; j < n; j++) { scanf("%c", &xrina[i][j]); } scanf("\n"); } for(int i = n - 1; i >= 0; i--) { for(int j = 0; j < h; j++) { if(xrina[j][i] == '#') { lin[i]++; } } } for(int i = n - 1; i >= 0; i--) { for(int j = m - 1; j >= 0; j--) { if(hm[i][j] == '#') { hm[i][j] = (min(lin[n - i - 1], col[j]) + '0'); } } } for(int i = 0; i < n; i++) { for(int j = 0; j < m; j++) { printf("%c", hm[i][j]); } printf("\n"); } return 0; }