#include <bits/stdc++.h>
using namespace std;
int main(){
ios::sync_with_stdio(false);
cin.tie(nullptr);
int B, D;
cin >> B >> D;
vector<string> shape(D);
for (int j = 0; j < D; j++) cin >> shape[j];
int W, H;
cin >> W >> H;
vector<string> park(H);
for (int y = 0; y < H; y++) cin >> park[y];
// UFO가 차지하는 상대 좌표
vector<pair<int,int>> cells;
for (int j=0;j<D;j++) for (int i=0;i<B;i++)
if (shape[j][i]=='O') cells.push_back({i,j});
// 결과 지도
vector<string> result = park;
// 간단한 배치 전략: (B+1, D+1) 간격으로 타일링 시도
for (int y=0; y+D<=H; y+=(D+1)){
for (int x=0; x+B<=W; x+=(B+1)){
bool ok=true;
for (auto [dx,dy]:cells){
int gx=x+dx, gy=y+dy;
if (park[gy][gx] != '.') { ok=false; break; }
// 인접에 이미 UFO 있는지 확인
static int dir[4][2]={{1,0},{-1,0},{0,1},{0,-1}};
for(auto &d:dir){
int nx=gx+d[0], ny=gy+d[1];
if(0<=nx && nx<W && 0<=ny && ny<H){
if(result[ny][nx]=='O'){ ok=false; break; }
}
}
if(!ok) break;
}
if(ok){
for (auto [dx,dy]:cells){
int gx=x+dx, gy=y+dy;
result[gy][gx]='O';
}
}
}
}
for(int y=0;y<H;y++) cout<<result[y]<<"\n";
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgppbnQgbWFpbigpewogICAgaW9zOjpzeW5jX3dpdGhfc3RkaW8oZmFsc2UpOwogICAgY2luLnRpZShudWxscHRyKTsKCiAgICBpbnQgQiwgRDsgCiAgICBjaW4gPj4gQiA+PiBEOwogICAgdmVjdG9yPHN0cmluZz4gc2hhcGUoRCk7CiAgICBmb3IgKGludCBqID0gMDsgaiA8IEQ7IGorKykgY2luID4+IHNoYXBlW2pdOwoKICAgIGludCBXLCBIOyAKICAgIGNpbiA+PiBXID4+IEg7CiAgICB2ZWN0b3I8c3RyaW5nPiBwYXJrKEgpOwogICAgZm9yIChpbnQgeSA9IDA7IHkgPCBIOyB5KyspIGNpbiA+PiBwYXJrW3ldOwoKICAgIC8vIFVGT+qwgCDssKjsp4DtlZjripQg7IOB64yAIOyijO2RnAogICAgdmVjdG9yPHBhaXI8aW50LGludD4+IGNlbGxzOwogICAgZm9yIChpbnQgaj0wO2o8RDtqKyspIGZvciAoaW50IGk9MDtpPEI7aSsrKQogICAgICAgIGlmIChzaGFwZVtqXVtpXT09J08nKSBjZWxscy5wdXNoX2JhY2soe2ksan0pOwoKICAgIC8vIOqysOqzvCDsp4Drj4QKICAgIHZlY3RvcjxzdHJpbmc+IHJlc3VsdCA9IHBhcms7CgogICAgLy8g6rCE64uo7ZWcIOuwsOy5mCDsoITrnrU6IChCKzEsIEQrMSkg6rCE6rKp7Jy866GcIO2DgOydvOungSDsi5zrj4QKICAgIGZvciAoaW50IHk9MDsgeStEPD1IOyB5Kz0oRCsxKSl7CiAgICAgICAgZm9yIChpbnQgeD0wOyB4K0I8PVc7IHgrPShCKzEpKXsKICAgICAgICAgICAgYm9vbCBvaz10cnVlOwogICAgICAgICAgICBmb3IgKGF1dG8gW2R4LGR5XTpjZWxscyl7CiAgICAgICAgICAgICAgICBpbnQgZ3g9eCtkeCwgZ3k9eStkeTsKICAgICAgICAgICAgICAgIGlmIChwYXJrW2d5XVtneF0gIT0gJy4nKSB7IG9rPWZhbHNlOyBicmVhazsgfQogICAgICAgICAgICAgICAgLy8g7J247KCR7JeQIOydtOuvuCBVRk8g7J6I64qU7KeAIO2ZleyduAogICAgICAgICAgICAgICAgc3RhdGljIGludCBkaXJbNF1bMl09e3sxLDB9LHstMSwwfSx7MCwxfSx7MCwtMX19OwogICAgICAgICAgICAgICAgZm9yKGF1dG8gJmQ6ZGlyKXsKICAgICAgICAgICAgICAgICAgICBpbnQgbng9Z3grZFswXSwgbnk9Z3krZFsxXTsKICAgICAgICAgICAgICAgICAgICBpZigwPD1ueCAmJiBueDxXICYmIDA8PW55ICYmIG55PEgpewogICAgICAgICAgICAgICAgICAgICAgICBpZihyZXN1bHRbbnldW254XT09J08nKXsgb2s9ZmFsc2U7IGJyZWFrOyB9CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgaWYoIW9rKSBicmVhazsKICAgICAgICAgICAgfQogICAgICAgICAgICBpZihvayl7CiAgICAgICAgICAgICAgICBmb3IgKGF1dG8gW2R4LGR5XTpjZWxscyl7CiAgICAgICAgICAgICAgICAgICAgaW50IGd4PXgrZHgsIGd5PXkrZHk7CiAgICAgICAgICAgICAgICAgICAgcmVzdWx0W2d5XVtneF09J08nOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQoKICAgIGZvcihpbnQgeT0wO3k8SDt5KyspIGNvdXQ8PHJlc3VsdFt5XTw8IlxuIjsKfQ==
NCAzCk8uLk8KT09PTwouTy4uCjIwIDEwCi4uLi4uLi4uLi4uLi4uLi4uLi4uCi53Li4uLi4udy4uLi4uLi53dy4uCi4uLi53dy4uLi4uLncudy4uLi4uCi53Li4uLi53Li4uLi4uLi4uLi4uCi4uLncuLi4uLi53Li4uLi4uLi4uCncuLi4uLi4uLi4uLi4uLi4ud3cuCi4uLi53Li4uLi4uLi4uLi4uLi4uCi53Li4uLi53Li4uLi4uLi53Lnd3Ci4uLi4uLi4uLi4uLncuLi4uLi4uCi4uLi53Li4uLi4uLi4uLi4uLi53
4 3
O..O
OOOO
.O..
20 10
....................
.w......w.......ww..
....ww......w.w.....
.w.....w............
...w......w.........
w................ww.
....w...............
.w.....w........w.ww
............w.......
....w..............w