#include<stdio.h>
int main(){
  int n,m,i,j,k,ny,nx,w,h,d,y,x;
  int Y[]={-1,0,1,0};
  int X[]={0,1,0,-1};
  char c,s[4]={"^>v<"};
  scanf("%d",&n);
  while(n--){
   char m[22][22]={0};
   d=4;
   scanf("%d %d",&h,&w);
    for(i=1;i<=h;i++){
      for(j=1;j<=w;j++){
	scanf(" %c",&m[i][j]);
	if(d==4){
	  for(d=0;d<4;d++){
	    if(m[i][j]==s[d])break;
	  }
	  if(d-4)m[y=i][x=j]='.';
	}//printf("%d ",d);
      }
    }
    scanf("%d",&k);
    while(k--){
      scanf(" %c",&c);//printf("%d\n",d);
      if(c=='U')d=0;
      if(c=='R')d=1;
      if(c=='D')d=2;
      if(c=='L')d=3;
      if(c=='S'){
	for(i=1;1;i++){
	  nx=x+X[d]*i;
	  ny=y+Y[d]*i;
	  if(m[ny][nx]=='#'||m[ny][nx]==0)break;
	  if(m[ny][nx]=='*'){
	    m[ny][nx]='.';
	    break;
	  }
	}//printf("i%d\n",i);
      }
      else{
	nx=x+X[d];
	ny=y+Y[d];
	if(m[ny][nx]=='.'){
	  y=ny;
	  x=nx;
	}
      }
    }
    for(i=1;i<=h;i++){
      for(j=1;j<=w;j++){
	if(i==y&&j==x)printf("%c",s[d]);
	else printf("%c",m[i][j]);
      }
      printf("\n");
    }
    if(n)printf("\n");
  }
  return 0;
}
       
	  
	  
    
    
    