Round-table Conference

Time Limit: 24000/12000 MS (Java/Others)

Memory Limit: 65536/65536 K (Java/Others)


Round-table conferences were held around the round table, ensuring equal participations for leaders and attendants. It’s a custom holding the belief that “All men are created equal”, derived from the British story of King Arthur and his round table knights.
One day, Zero, as a sponsor holding a round-table conference, faces a tough problem. He knows that there are n groups of people (groups are labeled from 0 to n - 1) and m seats around the table (seats are labeled from 0 to m - 1) in the conference. There are ai people in the i-th group. They should be assigned seats within range (li, (li + 1)%m, (li+ 2)%m, . . . , ri).In a valid arrangment, everyone has a single seat, and no seat can be shared by more than one person. Zero wants to know whether such an arrangement exists.


There are several test cases. Please process till EOF.
For each test case, The first line consists two numbers n(1 ≤ n ≤ 105) and m(1 ≤ m ≤ 109). Then follow n lines, each containing three numbers li, ri(0 ≤ li, ri< m) and ai(1 ≤ ai ≤ 109).


For each test case, output a single line containing “Yes” if arrangement exists or “No” otherwise.

Sample Input

2 4 0 1 2 1 2 2 2 3 2 0 2 1 1 1

Sample Output

No Yes