롤러코스터

시간 제한2초메모리 제한128 MB

문제

베시(Bessie)가 여행을 떠나 롤러코스터를 타고 있습니다! 베시는 롤러코스터를 아주 좋아하지만, 안타깝게도 자주 어지러움을 느낍니다.

롤러코스터는 서로 다른 여러 구간으로 이루어져 있고, 베시는 이 구간들을 순서대로 지나갑니다. 출발할 때 베시의 어지러움과 재미는 모두 0입니다. 각 구간에서 베시는 눈을 뜨거나 감을 수 있으며, 한 구간 내내 그 상태를 그대로 유지해야 합니다.

  • 눈을 뜨고 지나가면, 그 구간의 재미 계수만큼 재미가 늘고 어지러움 계수만큼 어지러움이 늘어납니다.
  • 눈을 감고 지나가면, 재미는 변하지 않고 어지러움이 롤러코스터 전체에 걸쳐 정해진 일정한 값만큼 줄어듭니다. (단, 어지러움은 절대 0보다 작아지지 않습니다.)

어느 순간이든 베시의 어지러움이 정해진 한계를 넘어서면 베시는 멀미를 하게 됩니다. 베시가 멀미하지 않으면서 얻을 수 있는 재미의 최댓값을 구하는 프로그램을 작성하세요.

입력

입력에는 여러 개의 테스트 케이스가 들어 있습니다. 각 테스트 케이스는 세 정수로 이루어진 한 줄로 시작합니다.

N K L
  • $N$ ($1 \le N \le 1{,}000$): 이 롤러코스터의 구간 수
  • $K$ ($1 \le K \le 500$): 한 구간에서 눈을 감았을 때 어지러움이 줄어드는 양
  • $L$ ($1 \le L \le 300{,}000$): 베시가 견딜 수 있는 어지러움의 한계입니다. 어지러움이 $L$을 초과하면 베시는 멀미를 합니다.

이어지는 $N$개의 줄에는 각각 두 정수가 주어집니다.

F D
  • $F$ ($1 \le F \le 20$): 그 구간에서 눈을 떴을 때 늘어나는 재미
  • $D$ ($1 \le D \le 500$): 그 구간에서 눈을 떴을 때 늘어나는 어지러움

구간은 순서대로 주어집니다. 입력의 마지막 줄에는 세 개의 0이 주어지며, 이 줄은 처리하지 않습니다.

출력

각 테스트 케이스마다, 베시가 어지러움 한계를 넘지 않으면서 얻을 수 있는 재미의 최댓값을 정수 하나로 한 줄에 출력하세요.