#include <cstring>
#include <iostream>
#include <algorithm>
#include <map>
#include <string>
#include <set>
#include <vector>

using namespace std;

int N, M, H;
char A[1002][1002];
char aux[1002];
int maxL[1002], maxC[1002];
char res[1002][1002];

int main()
{
	cin.sync_with_stdio(false);

	cin >> N >> M >> H;
	for (int i = 1; i <= N; ++i)
		cin >> (A[i] + 1);
	for (int i = 1; i <= H; ++i)
	{
		cin >> (aux + 1);
		for (int j = 1; j <= M; ++j)
			if (aux[j] == '#')
				maxC[j] = max(maxC[j], H - i + 1);
	}
	for (int i = 1; i <= H; ++i)
	{
		cin >> (aux + 1);
		for (int j = 1; j <= N; ++j)
			if (aux[j] == '#')
				maxL[N - j + 1] = max(maxL[N - j + 1], H - i + 1);
	}

	for (int i = 1; i <= N; ++i)
		for (int j = 1; j <= M; ++j)
			if (A[i][j] == '#')
				res[i][j] = min(maxL[i], maxC[j]) + '0';
			else
				res[i][j] = '.';
	
	for (int i = 1; i <= N; ++i)
		cout << res[i] + 1 << '\n';
}