#include <cstdio>
#include <cstring>
int main()
{
    freopen("input.txt", "r", stdin);
    freopen("output.txt", "w", stdout);
    int T;
    scanf("%d", &T);
    for(int i=1; i<=T; ++i)    // число циклов = числу указанному в первой строке input.txt
    {
        int H, W;
        scanf("%d%d", &H, &W); // H-высота и W-ширина таблицы
        char LRUD[101];        // символьный массив на 100 символов + символ конца строки
        scanf("%s", LRUD);
        int ARR[100][100];
        for(int i=0; i<H; ++i)
            for(int j=0; j<W; ++j)
                scanf("%d", &ARR[i][j]);       // заполнение двумерного массива
        for(int i=0; i<H; ++i)
        {
            for (int j = 0; j < W; ++j)
            {
                int s = ARR[i][j], i1=i, j1=j;  // начало главного блока
                for (int k = 0; k < strlen(LRUD); ++k)
                {
                    if (LRUD[k] == 'L')
                    {
                        j1=j1-1;
                        s = s + ARR[i1][j1];
                        if(j1<0) s=-2000000000; // если выход за пределы таблицы
                    }                           // то переменной присваивается отрицательное значение
                    if (LRUD[k] == 'R')         // заведомо превосходящее сумму положительных
                    {
                        j1=j1+1;
                        s = s + ARR[i1][j1];
                        if(j1>=W) s=-2000000000;
                    }
                    if (LRUD[k] == 'U')
                    {
                        i1=i1-1;
                        s = s + ARR[i1][j1];
                        if(i1<0) s=-2000000000;
                    }
                    if (LRUD[k] == 'D')
                    {
                        i1=i1+1;
                        s = s + ARR[i1][j1];
                        if(i1>=H) s=-2000000000;
                    }                                      // конец главного блока
                }
                if (s>0) printf("%d ", s);                 // вывод только чисел полученных без выхода
                else printf("%d ", 0);                     //за пределы таблицы, иначе ноль
            }
            printf("\n");                                  // разбиение единой строки на подстроки
        }
    }
    return 0;
}