#include #include #define f cin #define g cout using namespace std; int n , m , h , i , j , k , s; int aux[1010][1010]; bool H[1010][1010]; char t , jos[1010][1010] , dr[1010][1010]; int main() { //ifstream f("dd.in"); //ofstream g("dd.out"); f >> n >> m >> h; for (i = 1; i <= n; ++i) for (j = 1; j <= m; ++j) { f >> t; if (t == '#') aux[i][j] = h; H[i][j] = (t == '#'); } for (i = 1; i <= h; ++i) for (j = 1; j <= m; ++j) { f >> jos[i][j]; //if (t == '#') for (k = 1; k <= n; ++k) aux[k][j]++; } for (i = 1; i <= h; ++i) for (j = 1; j <= n; ++j) { f >> dr[i][j]; //if (t == '#')for (k = 1; k <= m; ++k) aux[n-j+1][k]++; } for (j = 1; j <= m; ++j) { s = 0; for (i = 1; i <= h; ++i) s += (jos[i][j] == '#'); for (k = 1; k <= n; ++k) aux[k][j] = min(aux[k][j] , s); } for (j = 1; j <= n; ++j) { s = 0; for (i = 1; i <= h; ++i) s += (dr[i][j] == '#'); for (k = 1; k <= m; ++k) aux[n-j+1][k] = min(aux[n-j+1][k] , s); } for (i = 1; i <= n; ++i) { for (j = 1; j <= m; ++j) if (aux[i][j]) g << aux[i][j]; else g << '.'; g << '\n'; } return 0; }