#include <iostream>
#include <algorithm>
using namespace std;
int n,m,h,i,j,M[1010][1010],vert[1010],oriz[1010];
bool ap[1010][1010];
char c;
int main()
{
    //ifstream f("stax.in");
    //ofstream g("stax.out");
    cin>>n>>m>>h;
    cin.get();
    for(i=1; i<=n; ++i)
    {
        for(j=1; j<=m; ++j)
        {
            cin.get(c);
            if(c=='#')
                ap[i][j]=1,M[i][j]=h;
        }
        cin.get();
    }
    for(i=1; i<=h; ++i)
    {
        for(j=1; j<=m; ++j)
        {
            cin.get(c);
            if(c=='#')
                ++vert[j];
        }
        cin.get();
    }
    for(i=1; i<=h; ++i)
    {
        for(j=1; j<=n; ++j)
        {
            cin.get(c);
            if(c=='#')
                ++oriz[n-j+1];
        }
        cin.get();
    }
    for(i=1; i<=n; ++i)
        for(j=1; j<=m; ++j)
            if(ap[i][j])
                M[i][j]=min(M[i][j],oriz[i]);
    for(j=1; j<=m; ++j)
        for(i=1; i<=n; ++i)
            if(ap[i][j])
                M[i][j]=min(M[i][j],vert[j]);
    for(i=1; i<=n; ++i)
    {
        for(j=1; j<=m; ++j)
        {
            if(ap[i][j])
                cout<<M[i][j];
            else cout<<'.';
        }
        cout<<'\n';
    }


    return 0;
}