\begin{problem}{Разрез таблицы}{стандартный ввод}{стандартный вывод}{1.5 секунд}{256 мегабайт}

Участникам, использующим язык \t{Python3}, рекомендуется отправлять решения на проверку с использованием интерпретатора \t{PyPy3}.

\medskip

Дана таблица, состоящая из  $n$ строк и $m$ столбцов. В каждой ячейке таблицы записан $0$ или $1$. Необходимо разделить таблицу на две части разрезом, проходящим из левого верхнего угла границы таблицы в правый нижний. Линия разреза может идти только вдоль границ ячеек таблицы в направлении вправо или вниз (см. рисунки ниже).

Пусть $a$~--- количество единиц в одной части таблицы после разреза, $b$~--- количество единиц в другой части таблицы. Требуется максимизировать величину $a \cdot b$.

\InputFile
В первой строке содержится два целых числа $n$ и $m$ ($1 \leq n, m \leq 3 \cdot 10^{5}$, $2 \leq n \cdot m \leq 3 \cdot 10^{5}$)~--- количество строк и столбцов в таблице соответственно.

В каждой из следующих $n$ строк записаны $m$ целых чисел, $j$-e число в $i$-й из этих строк соответствует значению $a_{i, j}$ ($0 \leq a_{i, j} \leq 1$).

\OutputFile
В первой строке выведите единственное число~--- максимальное значение произведения.

Если вы не хотите предъявлять разрез, при котором достигается ответ, то выведите во второй строке символ `\texttt{-}'. Иначе, во второй строке выведите строку, состоящую из $n$~символов~ `\texttt{D}' и $m$~символов~ `\texttt{R}', обозначающие очередное направление линии разреза длиной один, где `\texttt{D}' означает разрез вниз, а `\texttt{R}'~--- разрез вправо.

Обратите внимание, что ответ может быть больше, чем возможное значение 32-битной целочисленной переменной, поэтому необходимо использовать 64-битные целочисленные типы данных (тип \verb|int64| в языке Pascal, тип \verb|long long| в C и C++, тип \verb|long| в Java и C\#). Язык Python будет корректно работать и с типом \verb|int|.

\Scoring
В данной задаче 25 тестов, каждый из которых оценивается в 4 балла. Результаты работы ваших решений на первых $20$ тестах будут доступны во время соревнования. Результаты работы на остальных $5$ тестах будут доступны после окончания соревнования.

Вы получите $1$ балл за тест, если верно определите максимальное значение произведения. Оставшиеся $3$ балла в получите в случае верно восстановленного разреза.

Гарантируется, что решения корректно работающие при $1 \leq n, m \leq 7$, наберут не менее $16$ баллов.

Гарантируется, что решения корректно работающие при при $n \leq 2$ или $m \leq 2$, наберут не менее $20$ баллов.

Гарантируется, что решения корректно работающие при $2 \leq n \cdot m \leq 700$, наберут не менее $32$ баллов.

Гарантируется, что решения корректно работающие в случаях, когда каждая строка и столбец имеет не больше одного ненулевого значения, наберут не менее $16$ баллов.

\Examples

\begin{example}
\exmpfile{example.01}{example.01.a}%
\exmpfile{example.02}{example.02.a}%
\end{example}

\Note
На рисунках изображены корректные разрезы для каждого примера, при которых достигается максимальное значние произведения.

\begin{center}
\includegraphics{gpt_grid.0}
\hspace{5em}
\includegraphics{gpt_grid.1}
\end{center}

\end{problem}

