#include<bits/stdc++.h>
using namespace std;
map<string,int>fx;
map<pair<pair<int,int>,int>,bool>vis;
char mapp[55][55];
int dx[]={-1,1,0,0};//shang xia zuo you
int dy[]={0,0,-1,1};
int data[1005],n,m;
void dfs(int x,int y,int cnt,int walk)
{
// printf("%d %d %d %d\n",x,y,cnt,walk);getchar();
if(cnt>n){mapp[x][y]='*';return;}
pair<pair<int,int>,int>zt;
zt.first.first=x;zt.first.second=y;zt.second=cnt;
vis[zt]=1;
for(int i=1;;i++)
{
int nx,ny;
nx=x+dx[data[cnt]]*i;
ny=y+dy[data[cnt]]*i;
if(nx>n||nx<1||ny>m||ny<1)break;
if(mapp[nx][ny]=='X')break;
zt.first.first=nx;zt.first.second=ny;
if(vis[zt]==true)break;
dfs(nx,ny,cnt,walk+i);
}
if(walk)dfs(x,y,cnt+1,0);
}
int main()
{
fx["NORTH"]=0;fx["SOUTH"]=1;fx["WEST"]=2;fx["EAST"]=3;
scanf("%d%d",&n,&m);int nn;nn=n;
for(int i=1;i<=n;i++)scanf("%s",mapp[i]+1);
scanf("%d",&n);
for(int i=1;i<=n;i++)
{
string s;cin>>s;data[i]=fx[s];
}
for(int i=1;i<=n;i++)for(int j=1;j<=m;j++)if(mapp[i][j]=='*'){mapp[i][j]='.';dfs(i,j,1,0);break;}
for(int i=1;i<=nn;i++)
{
for(int j=1;j<=m;j++)printf("%c",mapp[i][j]);printf("\n");
}
}