Byteasar 正在庆祝他的十三岁生日。他收到的礼物之一是一台全新的电脑!他迫不及待地拆开礼物,开始阅读电脑说明书。结果发现这台电脑拥有 $m$ 个处理器。Byteasar 非常高兴——他终于可以并行执行许多任务了!
他迅速准备了一份包含 $n$ 个任务(编号从 $1$ 到 $n$)的列表,计划在他的新电脑上执行。一个处理器在同一时刻最多只能执行一个任务。任务 $i$ 需要 $c_i$ 秒才能完成,并且禁止在礼物拆开后 $p_i$ 秒之前开始执行,也禁止在礼物拆开后 $k_i$ 秒之后完成。每个任务的执行过程可以被任意次数地中断,也可以在不同的处理器之间移动。但是,一个任务不能同时在两个或多个处理器上执行。在处理器之间移动任务所需的时间可以忽略不计。是否可以安排这些任务的执行,使得每个任务都能在各自的时间范围内执行并完成?换句话说,是否存在一种启动、中断和在处理器间移动任务的策略,能够让 Byteasar 实现他的目标?
输入格式
输入的第一行包含两个整数 $n$ 和 $m$ ($1 \le n, m \le 100$),分别表示任务的数量和处理器的数量。接下来的 $n$ 行描述了 Byteasar 的任务。第 $i$ 行包含任务 $i$ 的描述:三个整数 $p_i, k_i$ 和 $c_i$ ($0 \le p_i < k_i \le 10^6; 1 \le c_i \le k_i - p_i$),分别表示允许执行第 $i$ 个任务的时间区间的开始时间和结束时间(以礼物拆开后的秒数表示),以及完成该任务所需的时间。
输出格式
如果可以在各自的时间范围内完成所有任务,输出 YES。否则,输出 NO。
样例
样例输入 1
3 2 3 8 3 2 5 2 3 7 3
样例输出 1
YES
样例输入 2
2 1 0 1 1 0 1 1
样例输出 2
NO