Робот
시간 제한2초메모리 제한512 MB
로봇 이동 문자열의 부분 문자열 중, 실행 중 격자를 벗어나지 않고 바위 칸을 밟지 않는 것의 수를 센다.
문제
Компания <<Филипп индастриз>> разрабатывает программу для нового робота-марсохода. Участок Марса, на котором будет работать робот, представляет собой квадратное поле размером , разбитое на квадратные участки размером , некоторые из которых могут содержать скалу (, не более 500 клеток содержат скалу).
Введем на поле систему координат таким образом, что участки имеют координаты . Программа для робота представляет собой последовательность инструкций, каждая из которых кодируется одной латинской буквой:
- <<
U>> --- переместиться с участка (, ) на участок (, ). - <<
D>> --- переместиться с участка (, ) на участок (, ). - <<
R>> --- переместиться с участка (, ) на участок (, ). - <<
L>> --- переместиться с участка (, ) на участок (, ).
Для экономии инженеры записывают в память последовательность инструкций , пронумерованных от 1 до . Затем можно заставить робота выполнить подпрограмму --- одну или несколько следующих подряд инструкций. Каждая подпрограмма, таким образом, характеризуется двумя целыми числами --- номером первой и последней инструкции в подпрограмме.
В процессе лабораторного эксперимента робот был размещен на некотором участке тестового поля. Будем называть подпрограмму корректной, если при последовательном выполнении инструкций робот не покидает поле и не перемещается на участок со скалой.
По описанию поля, программе для робота и его начальному положению определите, сколько у данной программы существует корректных подпрограмм.
입력
В первой строке входного файла находятся два числа и (, ) --- размер поля и количество инструкций в программе робота.
Во второй строке входного файла находится строка длины --- программа робота. Гарантируется, что строка состоит только из символов <<U>>, <<D>>, <<R>> и <<L>>.
Следующие строк содержат по символов в каждой и задают поле. Символ <<.>> означает, что участок пустой и по нему может перемещаться робот. Символ <<#>> означает, что на участке находится скала. Символ <<@>> означает, что в этой клетке находится стартовая позиция робота. Ось направлена слева направо, ось --- снизу вверх. Гарантируется, что символ <<@>> встречается ровно один раз, а символ <<#>> встречается не более 500 раз.
출력
В единственной строке выходного файла выведите количество корректных подпрограмм.
힌트
В примере следующие подпрограммы являются корректными: =<<U>>, =<<UL>>, =<<ULU>>, =<<U>>, =<<UR>>, =<<R>>.