#include #include using namespace std; const int NMAX = 1000; const int HMAX = 9; char ch[NMAX + 1][NMAX + 1], chx[HMAX + 1][NMAX + 1], chy[HMAX + 1][NMAX + 1]; int v[NMAX + 1][NMAX + 1], hx[HMAX + 1][NMAX + 1], hy[HMAX + 1][NMAX + 1]; int hc[NMAX + 1], hl[NMAX + 1]; int main () { //freopen ("Stax.in", "r", stdin); //freopen ("Stax.out", "w", stdout); int n, m, h; scanf ("%d%d%d", &n, &m, &h); for (int i = 1; i <= n; ++i) scanf ("%s", ch[i] + 1); for (int i = 1; i <= h; ++i) scanf ("%s", chx[i] + 1); for (int i = 1; i <= h; ++i) scanf ("%s", chy[i] + 1); for (int i = 1; i <= n; ++i) for (int j = 1; j <= m; ++j) v[i][j] = (ch[i][j] == '#'); for (int i = h; i; --i) for (int j = 1; j <= m; ++j) hx[i][j] = hx[i + 1][j] + (chx[i][j] == '#'); for (int i = h; i; --i) for (int j = 1; j <= n; ++j) hy[i][j] = hy[i + 1][j] + (chy[i][j] == '#'); for (int i = 1; i <= m; ++i) hc[i] = hx[1][i]; for (int i = 1; i <= n; ++i) hl[i] = hy[1][i]; for (int i = 1; i <= n; ++i) for (int j = 1; j <= m; ++j) if (v[i][j]) v[i][j] = min (hc[j], hl[n - i + 1]); for (int i = 1; i <= n; ++i) { for (int j = 1; j <= m; ++j) if (v[i][j]) printf ("%d", v[i][j]); else printf ("."); printf ("\n"); } return 0; }