#include #include #include using namespace std; int n, m, H; char mat[1010][1010], A[1010][1010], B[1010][1010]; int main() { //freopen("B.in", "r", stdin); int i, j, now; cin >> n >> m >> H; for(i = 1; i <= n; ++i) cin >> (mat[i] + 1); for(i = 1; i <= H; ++i) cin >> (A[i] + 1); // m coloane for(i = 1; i <= H; ++i) cin >> (B[i] + 1); // n coloane for(i = 1; i <= n; ++i) for(j = 1; j <= m; ++j) if(mat[i][j] != '.') mat[i][j] = H + '0'; for(j = 1; j <= m; ++j) { i = H + 1; while(i - 1 > 0 && A[i - 1][j] != '.') i--; now = H + 1 - i; for(i = 1; i <= n; ++i) if(mat[i][j] != '.') mat[i][j] = min(1 * mat[i][j], now + '0'); } for(i = 1; i <= n; ++i) { j = H + 1; while(j - 1 > 0 && B[j - 1][i] != '.') j--; now = H + 1 - j; for(j = 1; j <= m; ++j) if(mat[n - i + 1][j] != '.') mat[n - i + 1][j] = min(1 * mat[n - i + 1][j], now + '0'); } for(i = 1; i <= n; ++i) cout << (mat[i] + 1) << "\n"; return 0; }