#include #include #include using namespace std; const int MAX_N = 1010; char a[MAX_N][MAX_N]; char b[10][MAX_N]; char c[10][MAX_N]; bool viz[MAX_N]; int main() { int n, m, h; cin >> n >> m >> h; for(int i = 1; i <= n; i++) { cin >> (a[i] + 1); } for(int i = 1; i <= h; i++) { cin >> (b[i] + 1); } for(int i = 1; i <= h; i++) { cin >> (c[i] + 1); } for(int i = 1; i <= h; i++) { for(int j = 1; j <= m; j++) { if(b[i][j] == '#' && !viz[j]) { viz[j] = true; for(int k = 1; k <= n; k++) { if(a[k][j] == '#') { a[k][j] = h - i + 1 + '0'; } } } } } memset(viz, 0, sizeof(viz)); for(int i = 1; i <= h; i++) { for(int k = 1; k <= n; k++) { if(c[i][k] == '#' && !viz[k]) { viz[k] = true; for(int j = 1; j <= m; j++) { if(a[k][j] != '#' && a[k][j] != '.') { a[k][j] = min(a[k][j], (char)(h - i + 1 + '0')); } } } } } for(int i = 1; i <= n; i++) { cout << (a[i] + 1) << '\n'; } return 0; }