G. Осатаневший робот
ограничение по времени на тест
2 секунды
ограничение по памяти на тест
256 мегабайт
ввод
стандартный ввод
вывод
стандартный вывод

Помогите! Из нашей лаборатории сбежал робот, и нам нужна помощь в его поисках.

Лаборатория находится в точке (0, 0) координатной плоскости, в момент времени 0 робот находился именно там. Перемещения робота задаются программой — строкой длины l, состоящей из символов U, L, D, R. Каждую секунду робот выполняет очередную команду своей программы: если текущие координаты робота (x, y), то команды U, L, D, R перемещают его в клетки (x, y + 1), (x - 1, y), (x, y - 1), (x + 1, y) соответственно. Выполнение программы началось в момент 0. Программа зациклена, т.е. каждые l секунд выполнение программы начинается заново с первого символа. К сожалению, неизвестно, какая программа была заложена в робота, когда он покинул лабораторию.

Наши радары смогли определить положение робота в n моментов времени: известно, что в момент времени ti робот находился в точке (xi, yi). Помогите по этим данным определить, какая программа могла быть заложена в робота, либо определите, что никакая возможная программа не согласуется с данными, и робот дал сбой.

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

В первой строке ввода через пробел записано два целых числа n и l (1 ≤ n ≤ 2·105, 1 ≤ l ≤ 2·106).

В следующих n строках записано по три целых числа, разделенных пробелами — ti, xi, yi (1 ≤ ti ≤ 1018,  - 1018 ≤ xi, yi ≤ 1018). Показания радаров перечислены в хронологическом порядке, т.е. ti < ti + 1 для всех i от 1 до n - 1.

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

Выведите любую из возможных программ, согласующихся с данными. Если никакая программа не согласуется с данными, выведите одно слово «NO» (без кавычек).

Примеры
Входные данные
3 3
1 1 0
2 1 -1
3 0 -1
Выходные данные
RDL
Входные данные
2 2
1 1 0
999 1 0
Выходные данные
RL
Входные данные
2 5
10 10 0
20 0 0
Выходные данные
NO