import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;


public class Main {

	public static void main(String[] args) throws IOException {
		// TODO ?????????????????????????????????????????????


		BufferedReader insBR =  new BufferedReader(new InputStreamReader(System.in));
		//ArrayList<Field> list = new ArrayList<Field>();
		//????????????????????°?????????
		String strNum = insBR.readLine();
		int setNum = Integer.parseInt(strNum);

		int[] aryArea = new int[2];
		//?????????????????????????´?????????????
		Field[] aryIns = new Field[setNum];
		
		//???????????????????????°??????
		for(int deta = 0; deta < setNum; deta++){
			//?????£??????????????§???????????????
			String strArea = insBR.readLine();
			String[] area = strArea.split(" ");
			int intHeight= Integer.parseInt(area[0]);
			int intWidth = Integer.parseInt(area[1]);
			//?????£??????????????§??????????????????????´?
			//aryArea[0] = intHeight;
			//aryArea[1] = intWidth;

			//?????£??????????????±?????????????????????
			String[][] field = new String[intHeight][intWidth];
			//System.out.println("field.length:" + field.length);
			//System.out.println("field[0].length:" + field[0].length);

			//?????£?????????????????±?????£??\
			for(int j = 0; j < intHeight; j++){
				//????????\???????????????????????????????????????????´?
				//String[] fieldLine = new String[intWidth];
				String[] fieldLine = insBR.readLine().split("");
				//System.out.println("fieldLine.length:" + fieldLine.length);
				for(int i = 0; i < intWidth; i++){
					
					field[j][i] = fieldLine[i+1];
					//System.out.print(field[j][i]);
				}
				
			}
			


			//????????\??????????????°?????????
			int intTimes = Integer.parseInt(insBR.readLine());

			//???????????±????????????????????????????´?
			String[] commond = insBR.readLine().split("");
			//System.out.println("commond.length:" + commond.length);

			//field????????????????????????(?????°????????£??????????????±??¨?????????????????????)
			Field insField = new Field(field,commond);

			//????????????????????????
			insField.chageField();
			//??????????????????????????????????´?
			aryIns[deta] = insField;

		}

		
		//?????£??????????????????
		for(int k = 0; k < aryIns.length; k++){
			
			Field insField = aryIns[k];
			int intHeight = insField.field.length;
			int intWidth = insField.field[0].length;
			
			
			for(int j = 0; j < intHeight; j++){

				for(int i = 0; i < intWidth; i++){

					System.out.print(insField.field[j][i]);
				}
				System.out.println();
			}
			if(k != aryIns.length-1){
				System.out.println();
			}
		}



	}//Main??????????????????


	/**
	 * ?????£??????????????????*/
	static class Field{

		/**?????£?????????
		 * ????????£??????????????±?????????????????????*/
		private String[][] field;
		/**
		 * ????????????????????????????????????*/
		private String[] commond;
		/**
		 * ?????£??????????????§???????????????????????????*/
		private int[] aryArea;
		int intHeight;
		int intWidth;


		/**
		 * ?????????????????????*/
		Field(String[][] field, String[] commond ){

			this.field = field;
			this.commond = commond;
			this.intHeight = field.length;
			this.intWidth = field[0].length;
		}



		/**Method
		 *????????£??????????????±???????????????????????????????????????????????´??????
		 **/
		public void chageField(){

			//?????£????????????????????¨???????????£??\
			//int intHeight = aryArea[0];
			//int intWidth = aryArea[1];


			//?????????????????°?????°?????????
			for(int comNum = 0; comNum < commond.length; comNum++){
				//System.out.println("commond[" + comNum + "]" + commond[comNum]);

				//??????????????±??¨???????????????
				int[] tank = getTank();
				int j = tank[0];
				int i = tank[1];
				int tankHead = tank[2]; //1=^ 2=> 3=v 4=<
				//System.out.println("tank:" + j + i);

				//???????????????(????¨????)
				if("S".equals(commond[comNum])){

					//??????????¬??????¨?????¢???????????????????????°
					String nextArea = "";

					//????????????????????????(?????????)
					if(tankHead == 1){// ^??????

						//?¬??????¨?????¢???????????¬?????¬??§???????????°?????¨?????¢????????????
						for(int k = j-1; 0 <= k; k--){

							nextArea = field[k][i];

							if("#".equals(nextArea)){
								//????????´??????????????????????????¬??????
								break;
							}else if("*".equals(nextArea)){
								//??¬?????¬?????´???????????°?????????
								field[k][i] = ".";
								break;
							}
						}
					}else if(tankHead == 2){// >??????

						//?¬??????¨?????¢???????????¬?????¬??§???????????°?????¨?????¢????????????
						for(int k = i+1; k <= intWidth -1; k++){
						nextArea = field[j][k];

							if("#".equals(nextArea)){
								//????????´??????????????????????????¬??????
								break;
							}else if("*".equals(nextArea)){
								//??¬?????¬?????´???????????°?????????
								field[j][k] = ".";
								break;
							}
						}

					}else if(tankHead == 3){// v??????

						//?¬??????¨?????¢???????????¬?????¬??§???????????°?????¨?????¢????????????
						for(int k = j+1; k <= intHeight -1; k++){
							nextArea = field[k][i];

							if("#".equals(nextArea)){
								//????????´??????????????????????????¬??????
								break;
							}else if("*".equals(nextArea)){
								//??¬?????¬?????´???????????°?????????
								field[k][i] = ".";
								break;
							}
						}

					}else if(tankHead == 4){// <??????

						//?¬??????¨?????¢???????????¬?????¬??§???????????°?????¨?????¢????????????
						for(int k = i-1; 0 <= k; k--){
							nextArea = field[j][k];

							if("#".equals(nextArea)){
								//????????´??????????????????????????¬??????
								break;
							}else if("*".equals(nextArea)){
								//??¬?????¬?????´???????????°?????????
								field[j][k] = ".";
								break;
							}
						}

					}//commond"S"end


				}else if("U".equals(commond[comNum])){


					//nextArea = field[j-1][i];
					if(j == 0 || !".".equals(field[j-1][i])){
						//?????????????????????????????´????????????????¬??????¨?????¢????????°??§?????????????????????????????´
						field[j][i] = "^";
					}else if(".".equals(field[j-1][i])) {
						//?¬??????¨?????¢???????????´?????????????????°?????´???

						field[j-1][i] = "^";//??????????????????
						field[j][i] = ".";//????????¨?????¢????????°?????????
					}//commond"U"end

				}else if("R".equals(commond[comNum])){

					//nextArea = field[j][i+1];
					if(i == intWidth - 1 || !".".equals(field[j][i+1])){
						//?????????????????????????????´???????????????????????´
						field[j][i] = ">";
					}else if(".".equals(field[j][i+1])){
						//?¬??????¨?????¢???????????´???????????°?????´???
						field[j][i+1] = ">";//??????????????????
						field[j][i] = ".";//????????¨?????¢????????°?????????
					}//commond"R"end


				}else if("D".equals(commond[comNum])){


					if(j == intHeight - 1 || !".".equals(field[j+1][i])){
						//?????????????????????????????´???????????????????????´
						field[j][i] = "v";
						}else if(".".equals(field[j+1][i])){

							field[j+1][i] = "v";
							field[j][i] = ".";
					}//commond"D"end


				}else if("L".equals(commond[comNum])){


					if(i == 0 || !".".equals(field[j][i-1])){
						//??????????????????????????´???????????????????????´
						field[j][i] = "<";
					}else if(".".equals(field[j][i-1])){

						field[j][i-1] = "<";
						field[j][i] = ".";
					}//commond"L"end

				}


				/*System.out.println("????????????");
				for(int jj = 0; jj < intHeight; jj++){
					for(int ii = 0; ii < intWidth; ii++){
						System.out.print(field[jj][ii]);
					}
					System.out.println();
				}
				System.out.println();*/
			}

		}//changeField End

		/**
		 * ????????????????????????????????????
		 *
		 * */
		public int[] getTank(){

			//????????????????????±??¨???????????????????????????
			int[] tank = new int[3];
			//?????£??????????????§??????
			//int intHeight = aryArea[0];
			//int intWidth = aryArea[1];

			//for?????§??????????????????????????????
			for(int j = 0; j < intHeight; j++){
				for(int i = 0; i < intWidth; i++){

					if("^".equals(field[j][i])){
						tank[0] = j;
						tank[1] = i;
						tank[2] = 1;
					}else if(">".equals(field[j][i])){
						tank[0] = j;
						tank[1] = i;
						tank[2] = 2;
					}else if("v".equals(field[j][i])){
						tank[0] = j;
						tank[1] = i;
						tank[2] = 3;
					}else if("<".equals(field[j][i])){
						tank[0] = j;
						tank[1] = i;
						tank[2] = 4;
					}

				}
			}
			return tank;
		}
	}
}

Measured memory_bytes: 34832