#include <iostream>
#include <fstream>
#include <algorithm>
#include <math.h>
#include <string>
#include <vector>
#include <stdio.h>
#include <queue>

#define LL long long
#define pb push_back
#define lm 1001
#define MOD 1000000007

using namespace std;
char t[lm][lm],w[lm][lm],x[lm][lm];
int n,m,h;
string s;

void changen(int a,int b)
{
    for(int j=m-1; j>0; j--)
        {
            if(t[j][a]!='.')
            {
                t[j][a]='0'+b;
                break;
            }
        }

}
void changew(int a,int b)
{
    a=n-a-1;
    for(int j=m-1; j>0; j--)
        {
            if(t[a][j]=='#')
            {
                t[a][j]='0'+b;
            }
            else if(t[a][j]!='.')
            {
                t[a][j]=min(t[a][j]-'0',b)+'0';
                break;
            }
        }

}
int main()
{
    //freopen("data.in","r",stdin);
    cin>>n>>m>>h;
    for(int i=0; i<n; i++)
    {
        cin>>s;
        for(int j=0; j<m; j++)
        {
            t[i][j]=s[j];
        }
    }
    for(int i=0; i<h; i++)
    {
        cin>>s;
        for(int j=0; j<m; j++)
        {
            x[i][j]=s[j];
        }
    }
    for(int i=0; i<h; i++)
    {
        cin>>s;
        for(int j=0; j<m; j++)
        {
            w[i][j]=s[j];
        }
    }
    int k;
    for(int i=0; i<m; i++)
    {
        k=0;
        for(int j=0; j<h; j++)
        {
            if(x[j][i]!='.')
                k++;
        }
        if(k)
        {
            changen(i,k);
        }
    }
    for(int i=0; i<n; i++)
    {
        k=0;
        for(int j=0; j<h; j++)
        {
            if(w[j][i]!='.')
                k++;
        }
        if(k)
        {
            changew(i,k);
        }
    }
    for(int i=0; i<n; i++)
    {
        for(int j=0; j<m; j++)
        {
            if(t[i][j]=='#')
                t[i][j]='0'+1;
        }
    }
    for(int i=0; i<n; i++)
    {
        for(int j=0; j<m; j++)
        {
            cout<<t[i][j];
        }
        cout<<'\n';
    }
    return 0;
}