#include <iostream> #include <vector> #include <cstring> #include <climits> #include <string> #include <string.h> #include <stdio.h> #define infinity INT_MAX / 2 #include <stdlib.h> #define ll long long using namespace std; int mat[1001][1001]; int max_col[1001]; int max_row[1001]; int res[1001][1001]; int male[1001][1001]; int female[1001][1001]; int main() { // freopen("C:\\in.txt", "r", stdin); int n,m,h; string s; memset(res, 0, sizeof(res)); scanf("%d %d %d", &n, &m, &h); for(int i=0; i<n; ++i){ cin >> s; // cout << s << endl; for(int j=0; j<m; ++j){ if(s[j]=='.'){ mat[i][j]= 0; } else { mat[i][j] = 1; } } } for(int i=0; i<h; ++i){ cin >> s; for(int j=0; j< m; ++j){ if(s[j]== '.'){ male[i][j] = 0; } else { male[i][j] = 1; } } } for(int i=0; i<h; ++i){ cin >> s; for(int j=0; j<n; ++j){ if(s[j]=='.'){ female[i][j] = 0; } else { female[i][j] = 1; } } } for(int i=0; i<m ;++i){ int curr = 0; for(int j=0; j<h; ++j){ curr+=male[j][i]; } max_col[i] = curr; } for(int i=0; i<n; ++i){ int curr = 0; for(int j=0; j<h; ++j){ curr+=female[j][i]; } max_row[n-i-1] = curr; } for(int i=0; i<n; ++i){ for(int j=0; j<m; ++j){ // cout << mat[i][j]; if(mat[i][j]==0){ cout << "."; } else { cout << min(max_row[i], max_col[j]); } } cout << endl; } return 0; }