#include <iostream>
#include <vector>
#include <cstring>
#include <climits>
#include <string>
#include <string.h>
#include <stdio.h>
#define infinity  INT_MAX / 2
#include <stdlib.h>
#define ll long long
using namespace std;
int mat[1001][1001];
int max_col[1001];
int max_row[1001];
int res[1001][1001];
int male[1001][1001];
int female[1001][1001];
int main() {
   // freopen("C:\\in.txt", "r", stdin);
    int n,m,h;
    string s;
    memset(res, 0, sizeof(res));
    scanf("%d %d %d", &n, &m, &h);
        for(int i=0; i<n; ++i){
            cin >> s;
           // cout << s << endl;
            for(int j=0; j<m; ++j){
                if(s[j]=='.'){
                    mat[i][j]= 0;
                } else {
                    mat[i][j] = 1;
                }
            }
        }
        for(int i=0; i<h; ++i){
            cin >> s;
            for(int j=0; j< m; ++j){
                if(s[j]== '.'){
                    male[i][j] = 0;
                } else {
                    male[i][j] = 1;
                }
            }
        }
        for(int i=0; i<h; ++i){
            cin >> s;
            for(int j=0; j<n; ++j){
                if(s[j]=='.'){
                    female[i][j] = 0;
                } else {
                    female[i][j] = 1;
                }
            }
        }

    for(int i=0; i<m ;++i){
        int curr = 0;
        for(int j=0; j<h; ++j){
            curr+=male[j][i];
        }
        max_col[i] = curr;
    }
    for(int i=0; i<n; ++i){
        int curr = 0;
        for(int j=0; j<h; ++j){
            curr+=female[j][i];
        }
        max_row[n-i-1] = curr;
    }
    for(int i=0; i<n; ++i){
        for(int j=0; j<m; ++j){
             //   cout << mat[i][j];
            if(mat[i][j]==0){
                cout << ".";
            } else {
            cout << min(max_row[i], max_col[j]);
            }
        }
        cout << endl;
    }
    return 0;
}