사수빈탕

원점에서 오른쪽이나 위로만 이동하며 시간이 지날수록 줄어드는 사탕 바구니를 방문해 얻을 수 있는 사탕 개수의 최댓값을 구한다.

보통7동적 계획법정렬면접 대비아직 제출이 없습니다시간 제한1초메모리 제한64 MB

문제

수빈이는 좌표평면 위에 앉아 있다. "나는 좌표평면이 너무 좋아!!" 수빈이가 말했다. 좌표평면에는 사탕 바구니가 NN개 있고, 바구니마다 사탕이 MM개씩 들어 있다. 바구니는 각각 (x1,y1),(x2,y2),,(xN,yN)(x_1, y_1), (x_2, y_2), \dots, (x_N, y_N)에 놓여 있고, 수빈이는 (0,0)(0, 0)에서 출발한다.

오늘은 날씨가 덥다. 시간이 11만큼 지날 때마다 사탕이 남아 있는 모든 바구니에서 사탕이 한 개씩 녹아 사라진다. 시간이 tt만큼 지난 시점에 바구니에 남아 있는 사탕은 max(0,Mt)\max(0, M - t)개다.

수빈이는 배가 몹시 고프기 때문에 바구니에 도착하면 그 안의 사탕을 순식간에 모두 먹는다. 먹는 데는 시간이 들지 않는다. 수빈이가 11만큼 움직이면 시간도 11만큼 지난다. 수빈이는 위쪽(yy좌표가 늘어나는 방향)이나 오른쪽(xx좌표가 늘어나는 방향)으로만 움직일 수 있다.

수빈이가 먹을 수 있는 사탕의 최대 개수를 구하는 프로그램을 작성하시오.

입력

첫째 줄에 NNMM이 주어진다.

둘째 줄부터 NN개의 줄에 사탕 바구니의 위치 xix_i, yiy_i가 주어진다. (0N3000 \le N \le 300, 1M1061 \le M \le 10^6, 0xi,yi3000 \le x_i, y_i \le 300)

사탕 바구니의 위치는 서로 겹치지 않으며, (0,0)(0, 0)에는 사탕 바구니가 없다.

출력

수빈이가 먹을 수 있는 사탕의 최대 개수를 출력한다.