Задача №1699. Распознавание изображений

Новый проект Екатерины посвящен распознаванию изображений. При этом она решила применить инновационный подход, основанный на нанотехнологиях. Начать Екатерина решила с простого. Она выбрала d изображений, которые называются «цифрами» от \(0\) до \(d-1\). Каждое изображение представляет собой прямоугольник \(w\) на \(h\), заполненный белыми и черными квадратиками (назовем их пикселами). Все картинки различны (т.е. отличаются хотя бы одним пикселом).

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

Язык программирования для наноробота содержит следующие команды:

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

'(' ':' ')' - условный оператор. Робот смотрит на цвет пиксела, на котором он стоит. Если пиксел белый, то выполняется subprogram_w, если черный — subprogram_b.

'0', '1', …, '9' – команда распознавания. Робот должен выполнить одну из этих команд, когда он узнает, на каком изображении он расположен. После этой команды выполнение программы завершается.

Каждое перемещение занимает одну наносекунду. Выполнение условного оператора или оператора распознавания происходит мгновенно.

Ирина заинтересована в правильных программах. Т.е. если робот помещается на картинку, соответствующую цифре \(i\), то программа должна завершиться вызовом команды 'i'.

По данному описанию набора цифр составьте программу, время выполнения которой в худшем случае минимально.

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

Первая строка содержит три целых числа \(d, h\) и \(w (1 ≤ d, h, w ≤ 10)\) – количество изображений, высота и ширина изображений соответственно.

В следующих строках содержатся d описаний изображений. Каждое описание состоит из \(h\) строк по \(w\) символов в каждой. Символы могут быть двух типов: 'B' и 'W' и обозначать черный и белый пиксел соответственно.

Изображения даются в порядке от \(0\) до \(d-1\). Описания изображений разделены пустой строкой.

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

Выведите корректную программу для наноробота, работающую за минимальное время в худшем случае. Если таких программ несколько — выведите любую из них. Пробелы при проверке будут игнорироваться.

Примеры
Входные данные
3 5 4
WBBW
BWWB
BWWB
BWWB
WBBW

WWBW
WBBW
BWBW
WWBW
WWBW

WBBW
BWWB
WWBW
WBWW
BBBB
Выходные данные
D(1:D(2:0))
Сдать: для сдачи задач необходимо войти в систему