#include<bits/stdc++.h>
using namespace std;
int to[1010];
char mp[55][55];
bool v[1010][55][55];
int n,m,g,sx,sy;
string ss;
int dx[]={0,1,0,-1};
int dy[]={1,0,-1,0};
void dfs(int dep,int x,int y){
if(v[dep][x][y])return ;
v[dep][x][y]=1;
if(dep==0)return ;
while(1){
x+=dx[to[dep]],y+=dy[to[dep]];
if(mp[x][y]=='X'||x<1||x>n||y<1||y>m) break;
dfs(dep-1,x,y);
}
return ;
}
int main(){
cin>>n>>m;
for(int i=1;i<=n;i++){
scanf("\n");
for(int j=1;j<=m;j++){
mp[i][j]=getchar();
if(mp[i][j]=='*')mp[i][j]='.',sx=i,sy=j;
}
}
cin>>g;
for(int i=g;i>=1;i--){
scanf("\n");
cin>>ss;
if(ss[0]=='S')to[i]=0;
else if(ss[0]=='E')to[i]=1;
else if(ss[0]=='N') to[i]=2;
else to[i]=3;
}
dfs(g,sx,sy);
for(int i=1;i<=n;i++){
for(int j=1;j<=m;j++){
if(v[0][i][j]==1)cout<<'*';
else cout<<mp[i][j];
}
cout<<endl;
}
return 0;
}