원교수님 과제가 너무 많아요

아직 제출이 없습니다시간 제한1초메모리 제한1024 MB

문제

중간고사를 준비 중인 김한양은 원교수님께서 내주신 수많은 과제 때문에 절망했다. 터덜터덜 집에 가던 김한양은 마침 집앞에서 과제를 자동으로 해결해주는 로봇 '과제봇'을 판매하는 과제봇 상인을 만났다. 과제봇을 알게 된 김한양은 직접 과제를 해결하지 않고 과제봇을 구매하여 이용하기로 마음 먹었다.

과제봇 상인은 매일 김한양의 집 앞에서 과제봇을 판매한다. 하지만 과제봇은 너무 비싸서 가난한 대학생인 김한양은 하루에 최대 하나의 과제봇만 구매할 수 있다. 과제봇은 구매한 당일 바로 작동시켜야 하며, 각각의 과제봇은 사용자가 지정한 하나의 과제만을 수행할 수 있다. 과제봇이 과제를 완전히 해결한 시점에 해당 과제에 할당된 포인트가 지급된다.

과제마다 정해진 마감일과 해결하는 데 걸리는 시간, 그리고 과제를 해결했을 때 얻는 포인트가 모두 달라서 모든 과제를 수행하지 못할 수도 있다. 다행히 자비로우신 원교수님께서는 얻은 포인트의 총합이 공지된 커트라인 이상이면 재수강을 면할 수 있도록 해주셨다. 따라서 김한양은 재수강을 면할 수 있을 정도로만 과제를 해결하려 한다. 수많은 과제들을 보고 무기력해진 김한양을 위해 커트라인을 넘기는 데에 과제봇이 최소 몇 개가 필요한지 구해주자.

입력

첫째 줄에 과제의 개수 $N\ (1 \leq N \leq 200\,000)$과 원교수님께서 공지하신 커트라인 $C\ (N \leq C \leq N \times 40)$가 주어진다.

다음 줄부터 $N+1$번째 줄까지 각 과제의 마감일 $d\ (1 \leq d \leq N)$와 과제 해결에 걸리는 기간 $t\ (1 \leq t \leq d)$, 그리고 과제를 해결했을 때 얻는 포인트 $p\ (1 \leq p \leq 100)$가 공백으로 구분되어 주어진다.

예를 들어 $t=3$이라면 과제봇이 해당 과제를 해결하는 데에 $3$일이 소요된다.

또한, $d=3$, $t=2$인 과제를 완료하기 위해서는 적어도 $2$일차에는 과제봇을 작동시켜야 한다. ($2$일, $3$일 이틀간 작동 후 $3$일차에 과제 완료)

출력

커트라인을 넘길 수 있는 방법이 존재한다면 김한양이 사용할 수 있는 과제봇의 최소 개수를 출력한다.

만약 얻을 수 있는 포인트의 최댓값보다 커트라인이 더 높다면 I'm sorry professor Won!을 출력한다.