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: 34940