Задачі
Шифрування робота
Шифрування робота
\includegraphics{https://static.e-olymp.com/content/4f/4f6fec1cf4971805e2ac189f24bf2b32c9db3ad6.jpg}
Із-за підозри у шахрайстві один з параноїдальних авторів задач вирішив шифрувати всі свої повідомлення перед відправкою їх іншим членам жюрі. При цьому він не скористався стандартними методами шифрування, так як вващав що всі вони є гігантською частиною змови по придавленню змагання IDI Open зсередини. Він вважав, що шахраї - найгірші програмісти. І оскільки дешифрування вимагає певних навмчок програмування, то його можна не боятися.
Разом з закодованим повідомленням він відправляв інформацію про його дешифрування. Проблема полягала лише у тому, що не всі члены жюрі могли реалізувати декодування. Ви повинні допомогти дешифрувати повідомлення, написавши для цього програму.
Дешифрування виконується моделюванням руху робота на сітці. На початку робот знаходиться у північно-західному кутку сітки, обличчям повернутий на південь. Робот є достатньо простим механізмом, і виконує лише три різні команди:
\begin{enumerate}
\item \texttt{L} повертає робота на \textbf{90°} ліворуч
\item \texttt{R} повертає робота на \textbf{90°} праворуч
\item \texttt{F} пересуває робота на одну клітинку вперед. Якщо у результаті переміщення вперед робот впаде з решітки, то він замість переміщення повертається на \textbf{180°} і не рухається.
\end{enumerate}
Інструкції роботу подаються у рядку у вигляді набору команд, які можуть містити цикли. Цикл подається у вигляді \texttt{(множество команд)число} де \texttt{число} дорівнює кількості повторень множини команд у дужках, які повинні бути виконані. Рекурсивно можуть бути побудовані довгі послідовності команд. Більш формально:
\begin{lstlisting}
commandset ::= instruction+
instruction ::= command|loop
loop ::= "(" commandset ")" number
command ::= R|L|F
number ::= 1|2|3|4|5|6|7|8|9
\end{lstlisting}
Дешифрований текст отримується в результаті конкатенації символів у комірках сітки, на яких зупиняється робот після виконання кожного командного рядка.
\InputFile
Перший рядок містить кількість тестів $T$ ($0 < T ≤ 100$). Кожен тест починається рядком, який містить числа $W$ ($0 < W ≤ 50$) і $H$ ($0 < H ≤ 50$), відокремлені одним пропус ком і задають розміри сітки. Далі йде $H$ рядків, кожен з яких містить $W$ символів, що описують сітку. Наступний рядок містить кількість командних рядків $N$ ($0 < N ≤ 20$). Після нього йде $N$ командних рядків, які повинні бути викпонані роботом.
Командні рядки містять не більше $50$ символів і мають синтаксис, описаний в умові. Символи з ASCII кодом менше $32$ і більше $126$ не зустрічаються на сітці робота.
\OutputFile
Для кожного тесту у окремому рядку вивести дешифрований текст.
Вхідні дані #1
1 6 7 012345 6789AB CDEFGH IJKLMN OPQRST UVWXYZ _! ,& 12 FFL(F)5 (F)4 (LF)2 (L(R)6L)9 RFRFFF (L(F)2)2 LF FLFF FFFF LF FLFF L(F)4
Вихідні дані #1
HELLO WORLD!