#include<bits/stdc++.h>
using namespace std;
const int Max=51;
int Wa[1001],n,t,p,x,y;
int vis[Max][Max];
bool b[Max][Max][Max];
int dx[]={0,1,0,-1,0};
int dy[]={0,0,1,0,-1};
int read(){//快读
int x=0,f=1;
char c=getchar();
while(c<'0'||c>'9'){
if(c=='-') f=-1;
c=getchar();
}
while(c>='0'&&c<='9'){
x=x*10+c-'0';
c=getchar();
}
return x*f;
}
void dfs(int xx,int yy,int l){
if(b[xx][yy][l]==1) return;
b[xx][yy][l]=1;
if(l==n) {
vis[xx][yy]=3;
return;
}
int wy=Wa[l+1];
for(int i=1;i<=4;i++){
if(i==wy){
int kx=xx+dx[i];
int ky=yy+dy[i];
if(kx<1 || ky<1 || kx>t || ky>p || vis[kx][ky]==1) continue;
dfs(kx,ky,l);
}
else {
int kx=xx+dx[i];
int ky=yy+dy[i];
if(kx<1 || ky<1 || kx>t || ky>p || vis[kx][ky]==1) continue;
dfs(kx,ky,l-1);;
}
}
}
int main(){
ios::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
t=read();p=read();
for(int i=1;i<=t;i++){
for(int j=1;j<=p;j++){
char c;
c=read();
if(c=='.') vis[i][j]=0;
else if(c=='X') vis[i][j]=1;
else{
x=i;
y=j;
vis[i][j]=0;
}
}
}
n=read();
string s;
for(int i=1;i<=n;i++){
s=read();
if(s=="NORTH") Wa[i]=1;
else if(s=="EAST") Wa[i]=2;
else if(s=="SOUTH") Wa[i]=3;
else Wa[i]=4;
}
dfs(x,y,0);
for(int i=1;i<=t;i++){
for(int j=1;j<=p;j++){
if(vis[i][j]==0) cout<<'.';
else if(vis[i][j]==1) cout<<'X';
else cout<<'*';
}
cout<<'\n';
}
}