#include <iostream>
#include <cstdio>
#include <cstring>
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;
}