#include #include using namespace std; int n,m,h,i,j,M[1010][1010],vert[1010],oriz[1010],Min; char c; int main() { cin>>n>>m>>h; cin.get(); for(i=1; i<=n; ++i) { for(j=1; j<=m; ++j) { cin.get(c); if(c=='#') M[i][j]=-1; } 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=n; i>=1; --i) for(j=m; j>=1; --j) if(M[i][j]==-1) { Min=min(vert[j],oriz[i]); if(Min>0) { M[i][j]=Min; if(vert[j]>oriz[i]) oriz[i]-=Min; else vert[j]-=Min; } else { if(vert[j]==0) { if(oriz[i]==0) M[i][j]=min(M[i+1][j],M[i][j+1]); else { Min=min(M[i+1][j],oriz[i]); M[i][j]=Min; if(Min==oriz[i]) oriz[i]=0; } } else { Min=min(M[i][j+1],vert[j]); M[i][j]=Min; if(Min==vert[j]) vert[j]=0; } } } for(i=1; i<=n; ++i) { for(j=1; j<=m; ++j) { if(M[i][j]>0) cout<