#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; const int INF = 0x3f3f3f3f; const double EPS = 1e-11; const double PI = 3.141592653589793; const int MAX_N = 1005; const long long LLINF = 99999999999999999LL; const int SIGMA = 26; int N, M, H; int A[MAX_N][MAX_N], R[MAX_N], C[MAX_N]; int main() { /* #ifndef ONLINE_JUDGE freopen("data.in", "r", stdin); #endif */ cin >> N >> M >> H; char c; for(int i = 1; i <= N; ++i) { for(int j = 1; j <= M; ++j) { cin >> c; if(c == '#') A[i][j] = 1; } } for(int i = 1; i <= H; ++i) { for(int j = 1; j <= M; ++j) { cin >> c; if(c == '.') continue; if(C[j] == 0) C[j] = H - i + 1; } } for(int i = 1; i <= H; ++i) { for(int j = N; j >= 1; --j) { cin >> c; if(c == '.') continue; if(R[j] == 0) R[j] = H - i + 1; } } for(int i = 1; i <= N; ++i) { for(int j = 1; j <= M; ++j) { if(A[i][j] == 0) cout << "."; else cout << min(R[i], C[j]); } cout << "\n"; } return 0; }