#include<bits/stdc++.h>
using namespace std;
long long sx,sy,n,m,t,dx[5]={0,-1,1,0,0},dy[5]={0,0,0,-1,1},vis[10001];
bool s[110][110][2010]={false};
char a[101][101];
void dfs(int stp,int xx,int yy,bool flag){
if(xx<1|| yy<1 || xx>n || yy>m || stp>t || s[xx][yy][stp] || a[xx][yy]=='X'){
return;
}
if(stp==t){
a[xx][yy]='*';
}
dfs(stp,xx+dx[vis[stp]],yy+dy[vis[stp]],true);
if(flag){
dfs(stp+1,xx+dx[vis[stp+1]],yy+dy[vis[stp+1]],true);
}
s[xx][yy][stp]=true;
}
int main(){
cin>>n>>m;
for(int i=1;i<=n;i++){
for(int j=1;j<=m;j++){
cin>>a[i][j];
if(a[i][j]=='*'){
sx=i;
sy=j;
a[i][j]='.';
}
}
}
cin>>t;
for(int i=1;i<=t;i++){
string s;
cin>>s;
switch(s[0]){
case 'N':{
vis[i]=1;
break;
}case 'S':{
vis[i]=2;
break;
}
case 'W':{
vis[i]=3;
break;
}default:{
vis[i]=4;
}
}
}
dfs(1,sx,sy,false);
for(int i=1;i<=n;i++){
for(int j=1;j<=m;j++){
cout<<a[i][j]<<" ";
}
cout<<endl;
}
return 0;
}