Пересменка в Сириусе
시간 제한1초메모리 제한2048 MB
각 직원이 방 m_i에서 시작하고 그 방이 이미 수리됐으면 곧바로 돌아올 때, 모든 방을 수리하도록 직원 순서를 정할 수 있는지 판정한다.
문제
Участники образовательных программ иногда задумываются, почему между двумя программами обычно бывает перерыв в несколько дней. Ответ прост: сотрудникам Сириуса необходимо после очередной программы привести в порядок жилые номера.
На одном этаже в гостинице ОЦ <<Сириус>> находятся номеров, пронумерованных от до . После проведения образовательной программы все эти номера нуждаются в ремонте.
К ремонтным работам привлечены сотрудников, пронумерованных от до . За -м сотрудником закреплён диапазон номеров с по включительно, а также зафиксирован номер из этого диапазона, с которого он должен начать обход своих номеров. Диапазоны номеров у разных сотрудников могут пересекаться и даже совпадать.
Сотрудники в некотором порядке направляются с базы для выполнения работ. Следующий сотрудник направляется только после возвращения предыдущего на базу.
Когда -го сотрудника направляют на выполнение работ, он сначала идёт в номер . Если этот номер всё ещё нуждается в ремонте, то сотрудник ремонтирует его, а также посещает все номера из диапазона с по , за который он отвечает, и ремонтирует все нуждающиеся в ремонте номера из этого диапазона, после чего возвращается на базу. После этого все номера из диапазона с по более не нуждаются в ремонте.
Если же первый посещённый сотрудником номер не нуждается в ремонте, поскольку его уже отремонтировали ранее направленные для выполнения работ коллеги, то сотрудник сразу возвращается на базу, надеясь, что коллеги уже отремонтировали и все остальные номера из его диапазона. В этом случае некоторые другие номера из диапазона с по всё еще могут нуждаться в ремонте.
Определите, можно ли при подобном подходе сотрудников к выполнению своих обязанностей направить их всех для выполнения работ в таком порядке, чтобы в итоге все номера от до оказались отремонтированы.
입력
Каждый тест состоит из нескольких наборов входных данных. В первой строке находится одно целое число () --- количество наборов входных данных. Далее следует описание наборов входных данных.
Первая строка каждого набора входных данных содержит два целых числа и () --- количество номеров и количество сотрудников соответственно.
В каждой из последующих строк содержится три целых числа , и () --- первый номер диапазона ответственности -го сотрудника, номер из диапазона, с которого он должен начать обход своих, и последний номер из его диапазона, соответственно.
Гарантируется, что сумма и по всем наборам входных данных не превосходит .
출력
Для каждого набора входных данных в отдельной строке выведите <<YES>>, если можно отремонтировать все номера, и <<NO>> --- в противном случае.
힌트
В первом наборе входных данных из примера нужно сначала направить для выполнения ремонтных работ второго сотрудника, он отремонтирует номера с первого по третий. Затем первый сотрудник направится в номер 4. Так как он еще нуждается в ремонте, первый сотрудник отремонтирует оставшиеся номера в своем диапазоне. В результате все номера будут отремонтированы.
Во втором наборе данных выбрать подходящий порядок отправки сотрудников невозможно.