#include<stdio.h>
#include<string.h>

int main(void){
  int i,n,j,k,h,w,N,a=0,b=0; 
  char map[22][22],mapf[20][20],command[105];
  scanf("%d",&n);
  
  for(i=0;i<n;i++){
    
    //初期化
    for(j=0;j<22;j++){
      for(k=0;k<22;k++){
	map[j][k]='#';
      }
    }
    scanf("%d %d",&h,&w);

   //初期化
    for(j=0;j<20;j++){
      for(k=0;k<20;k++){
	mapf[j][k]='#';
      }
    }


    for(j=0;j<h;j++){
	scanf("%s%*c",mapf[j]);
    }

    for(j=0;j<h;j++){
      for(k=0;k<w;k++){
	map[j+1][k+1]=mapf[j][k];
      }
    }
    //map 完成 以下命令

    scanf("%d",&N);
    scanf("%s",command);
    /*for(j=0;j<N;j++){
      printf("%c",command[j]);
    }
    printf("\n");*/

    //以下処理

    //現在地把握
    for(j=0;j<22;j++){
      for(k=0;k<22;k++){
	if((map[j][k]=='^') || (map[j][k]=='v') ||( map[j][k]=='>') || (map[j][k]=='<')){
	  a=j;
	  b=k;
	  break;
	}
      }
     if(a!=0) break;
    }
   

    for(j=0;j<N;j++){
	//上に移動
      if(command[j]=='U'){
	if(map[a-1][b]=='.'){
	  map[a-1][b]='^';
	  map[a][b]='.';
	  a--;
	}else{
	  map[a][b]='^';
	}
      }
      //下に移動
      if(command[j]=='D'){
	if(map[a+1][b]=='.'){
	  map[a+1][b]='v';
	  map[a][b]='.';
	  a++;
	}else{
	  map[a][b]='v';
	}
      }
      //左に移動
      if(command[j]=='L'){
	if(map[a][b-1]=='.'){
	  map[a][b-1]='<';
	  map[a][b]='.';
	  b--;
	}else{
	  map[a][b]='<';
	}
      }
      //右に移動
      if(command[j]=='R'){
	if(map[a][b+1]=='.'){
	  map[a][b+1]='>';
	  map[a][b]='.';
	  b++;
	}else{
	  map[a][b]='>';
	}

      }

      //ショットの処理
      if(command[j]=='S'){

	if(map[a][b]=='^'){
	  for(k=a;;k--){
	    if(map[k][b]=='*'){
	      map[k][b]='.';
	      break;
	    }else if(map[k][b]=='#'){
	      break;
	    }
	    
	  }
	}


	if(map[a][b]=='v'){
	  for(k=a;;k++){
	    if(map[k][b]=='*'){
	      map[k][b]='.';
	      break;
	    }else if(map[k][b]=='#'){
	      break;
	    }
	    
	  }
	}


	if(map[a][b]=='>'){
	  for(k=b;;k++){
	    if(map[a][k]=='*'){
	      map[a][k]='.';
	      break;
	    }else if(map[a][k]=='#'){
	      break;
	    }
	    
	  }
	}


	if(map[a][b]=='<'){
	  for(k=b;;k--){
	    if(map[a][k]=='*'){
	      map[a][k]='.';
	      break;
	    }else if(map[a][k]=='#'){
	      break;
	    }
	    
	  }
	}
      }
    }

    //以下出力    
    for(j=0;j<h;j++){
      for(k=0;k<w;k++){
	printf("%c",map[j+1][k+1]);
      }
      printf("\n");
    }
    if(j!=n-1) printf("\n");
  }
  return 0;
}