#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; }