#include <cstdio>
#include <iostream>
#include <fstream>
#include <vector>
#include <list>
#include <map>
#include <set>
#include <queue>
#include <stack>
#include <bitset>
#include <algorithm>
#include <sstream>
#include <iomanip>
#include <cmath>
#include <cstdlib>
#include <ctype.h>
#include <cstring>
#include <string>
#include <ctime>
#include <cassert>
#include <utility>

using namespace std;

#define LIM 1005

char xrin[15][LIM], xrina[15][LIM], hm[LIM][LIM], col[LIM], lin[LIM];
int n, m, h;

int main() {
//	freopen("date.in", "r", stdin);
//	freopen("date.out","w", stdout);

    scanf("%d %d %d\n", &n, &m, &h);
    for(int i = 0; i < n; i++) {
        for(int j = 0; j < m; j++) {
            scanf("%c", &hm[i][j]);
        }
        scanf("\n");
    }
//
//    for(int i = 0; i < n; i++) {
//        for(int j = 0; j < m; j++) {
//            printf("%c", hm[i][j]);
//        }
//        printf("\n");
//    }

    for(int i = 0; i < h; i++) {
        for(int j = 0; j < m; j++) {
            scanf("%c", &xrin[i][j]);
        }
        scanf("\n");
    }

    for(int j = 0; j < m; j++) {
        for(int i = 0; i < h; i++) {
            if(xrin[i][j] == '#') {
                col[j]++;
            }
        }
    }

    for(int i = 0; i < h; i++) {
        for(int j = 0; j < n; j++) {
            scanf("%c", &xrina[i][j]);
        }
        scanf("\n");
    }

    for(int i = n - 1; i >= 0; i--) {
        for(int j = 0; j < h; j++) {
            if(xrina[j][i] == '#') {
                lin[i]++;
            }
        }
    }

    for(int i = n - 1; i >= 0; i--) {
        for(int j = m - 1; j >= 0; j--) {
            if(hm[i][j] == '#') {
                hm[i][j] = (min(lin[n - i - 1], col[j]) + '0');
            }
        }
    }

    for(int i = 0; i < n; i++) {
        for(int j = 0; j < m; j++) {
            printf("%c", hm[i][j]);
        }
        printf("\n");
    }

	return 0;
}