Олимпиадный тренинг

Задача . F. Робот на доске 2


Робот находится на клетчатой прямоугольной доске размера \(n \times m\) (\(n\) строк, \(m\) столбцов). Строки пронумерованы от \(1\) до \(n\) сверху вниз, столбцы — от \(1\) до \(m\) слева направо.

Робот умеет передвигаться из текущей клетки в одну из четырех соседних с ней по стороне.

На каждой клетке доски написан один из символов 'L', 'R', 'D' или 'U', обозначающий направление движения робота, находящегося в этой клетке — влево, вправо, вниз или вверх, соответственно.

Начать свое движение робот может в любой клетке. После этого он за один ход перемещается в соседнюю по стороне клетку в направлении, указанном на текущей клетке.

  • Если робот перемещается за границу доски, он падает и ломается.
  • Если робот оказывается в клетке, в которой он был ранее, то он ломается (он останавливается и больше не двигается).

Робот может выбрать любую клетку в качестве стартовой. Его цель — совершить максимальное количество команд до поломки или остановки.

Определите, с какой клетки роботу стоит начинать свое движение, чтобы выполнить как можно больше команд. Команда считается успешно выполненной, если робот переместился с той клетки, на которой эта команда была написана (не важно, на другую клетку или за границу доски).

Входные данные

В первой строке записано целое число \(t\) (\(1 \le t \le 10000\)) — количество наборов входных данных в тесте.

Перед каждым набором в тесте записана пустая строка. Далее идёт строка, которая содержит целые числа \(n\) и \(m\) (\(1 \le n \le 2000\); \(1 \le m \le 2000\)) — размеры доски. Затем следуют \(n\) строк, \(i\)-я из которых описывает \(i\)-ю строку доски. Каждая из них имеет длину ровно \(m\) и состоит из символов 'L', 'R', 'D' и 'U'.

Гарантируется, что сумма размеров всех досок во входных данных не превосходит \(4\cdot10^6\).

Выходные данные

Для каждого набора входных данных выведите три целых числа \(r\), \(c\) и \(d\) (\(1 \le r \le n\); \(1 \le c \le m\); \(d \ge 0\)), которые обозначают, что роботу следует начать движение из клетки \((r, c)\), чтобы сделать максимальное количество ходов \(d\). Если ответов несколько, то выведите любой из них.


Примеры
Входные данныеВыходные данные
1 7

1 1
R

1 3
RRL

2 2
DL
RU

2 2
UD
RU

3 2
DL
UL
RU

4 4
RRRD
RUUD
URUD
ULLR

4 4
DDLU
RDDU
UUUU
RDLD
1 1 1
1 1 3
1 1 4
2 1 3
3 1 5
4 3 12
1 1 4

time 2000 ms
memory 256 Mb
Правила оформления программ и список ошибок при автоматической проверке задач

Статистика успешных решений по компиляторам
 Кол-во
С++ Mingw-w645
Комментарий учителя