#include<bits/stdc++.h>
#define int long long
using namespace std;
int r,c,n,d,nowline;
char mp[33000][33];
void Move(int n){
int x=n;
nowline=1;
mp[nowline][x]='O';
while(mp[nowline+1][x]!='O'&&mp[nowline+1][x]!='X'&&nowline+1<=r){
mp[nowline][x]='.';
nowline++;
mp[nowline][x]='O';
}
if(mp[nowline+1][x]=='X')mp[nowline][x]='O';
for(int i=1;i<=2;i++){
if(mp[nowline+1][x]=='O'&&nowline+1<=r){
if(mp[nowline][x-1]=='.'&&mp[nowline+1][x-1]=='.'&&x-1>=1){
mp[nowline][x]='.';
nowline++;
x--;
mp[nowline][x]='O';
while(mp[nowline+1][x]!='O'&&mp[nowline+1][x]!='X'&&nowline+1<=r){
mp[nowline][x]='.';
nowline++;
mp[nowline][x]='O';
}
}
else if(mp[nowline][x+1]=='.'&&mp[nowline+1][x+1]=='.'&&x+1<=c){
mp[nowline][x]='.';
nowline++;
x++;
mp[nowline][x]='O';
while(mp[nowline+1][x]!='O'&&mp[nowline+1][x]!='X'&&nowline+1<=r){
mp[nowline][x]='.';
nowline++;
mp[nowline][x]='O';
}
}
}
}
}
signed main(){
ios::sync_with_stdio(0);
cin.tie(nullptr);
cout.tie(nullptr);
scanf("%d%d",&r,&c);
for(int i=1;i<=r;i++){
char S[33000];
cin >> S+1;
for(int j=1;j<=c;j++)mp[i][j]=S[j];
}
scanf("%d",&n);
for(int k=1;k<=n;k++){
scanf("%d",&d);
Move(d);
}
for(int i=1;i<=r-1;i++){
for(int j=1;j<=c;j++){
cout << mp[i][j];
}
cout << endl;
}
for(int j=1;j<=c;j++){
cout << mp[r][j];
}
return 0;
}