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

Задача . E. Игра с картами


У Алисы сломался компьютер и теперь она не может играть в свою любимую карточную игру. Чтобы помочь Алисе, Боб решил помочь ей и ответить на \(n\) запросов.

Изначально в левой и правой руке Боб держит по одной карте с числом \(0\), записанным на этих картах. Во время выполнения \(i\)-го запроса Алиса предлагает Бобу заменить карту в правой или левой руке на карту с числом \(k_i\) (Боб выбирает, какую из карт заменить, Боб обязан заменить ровно одну карту).

После замены карты Алиса хочет, чтобы число на левой и правой картах принадлежали каким-то заданным отрезкам (отрезки для левой и правой карты могут быть различны). Формально, пусть число записанное на левой карте — \(x\), а на правой — \(y\). Тогда после замены карты на \(i\)-м запросе должно выполняться, что \(a_{l, i} \le x \le b_{l, i}\) и \(a_{r, i} \le y \le b_{r,i}\).

Скажите, сможет ли Боб ответить на все запросы, чтобы все условия удовлетворялись. Если ответить на все запросы возможно, то приведите способ это сделать.

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

В первой строке вводятся два целых числа \(n\) и \(m\) (\(2 \le n \le 100\,000\), \(2 \le m \le 10^9\)) — количество запросов и максимально возможное значение на карте.

Далее следует описание \(n\) запросов. Описание каждого запроса состоит из трех строк.

В первой строке описания \(i\)-го запроса вводится целое число \(k_i\) (\(0 \le k_i \le m\)) — число, записанное на новой карте.

Во второй строке описания \(i\)-го запроса вводятся два целых числа \(a_{l, i}\) и \(b_{l, i}\) (\(0 \le a_{l, i} \le b_{l, i} \le m\)) — минимальное и максимальное допустимые значения, записанные на карте в левой руке после замены.

Во третьей строке описания \(i\)-го запроса вводятся два целых числа \(a_{r, i}\) и \(b_{r,i}\) (\(0 \le a_{r, i} \le b_{r,i} \le m\)) — минимальное и максимальное допустимые значения, записанные на карте в правой руке после замены.

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

В первой строке выведите «Yes», если Боб может ответить на все запросы, и «No» иначе.

Если Боб может ответить на все \(n\) запросов, то во второй строке выходных данных должны содержаться \(n\) чисел, соответствующих корректному способу ответить на все запросы. Если в ответ на \(i\)-й запрос Бобу нужно взять карту в левую руку, выведите \(0\), иначе выведите \(1\). Если существует несколько корректных способов ответить на запросы, то любой из них будет засчитан.


Примеры
Входные данныеВыходные данные
1 2 10
3
0 3
0 2
2
0 4
0 2
Yes
0 1
2 2 10
3
0 3
0 2
2
3 4
0 1
No
3 5 10
3
0 3
0 3
7
4 7
1 3
2
2 3
3 7
8
1 8
1 8
6
1 6
7 10
Yes
1 0 0 1 0

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

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