각각 비용과 보상이 있는 N개의 과제와 시작 금액 M이 주어질 때, 비용을 먼저 지불하고 보상을 받는 순서를 정해 최종 금액이 최대가 되도록 한다.
"어딘가에는 종업원 전원이 무슨 분야든 박사 학위를 딴 식당이 있을 것이다." (두두, 2014)
두두는 배가 고파서 근처 타이 음식점에 들어가 자리를 잡았다. 그리고 놀랍게도 자기가 앉은 곳이 박사 식당이라는 사실을 알아차렸다. 직원 전원이 어떤 분야든 박사 학위를 딴 곳이다.
게다가 직원은 각자 자기 전공과 관련된 도전 과제를 하나씩 준비해 두었다. 두두는 음식을 기다리는 동안 그 과제에 도전한다. iii번 직원이 준비한 과제는 도전하는 데 AiA_iAi가 들고, 성공하면 BiB_iBi를 받는다.
각 과제는 최대 한 번만 완료할 수 있고, 순서는 두두가 마음대로 정할 수 있다. 두두는 아주 영리해서 어떤 과제든 반드시 성공하지만, iii번 과제에 도전하기 전에 AiA_iAi를 낼 돈이 있어야 한다. 두두가 처음에 돈 MMM으로 시작할 때, 두두가 모을 수 있는 돈의 최대 금액을 구한다.
첫째 줄에 과제의 개수 NNN과 두두가 처음 가진 금액 MMM이 공백으로 구분되어 주어진다.
둘째 줄에 각 과제에 도전하는 비용 A1,A2,…,ANA_1, A_2, \dots, A_NA1,A2,…,AN이 주어진다.
셋째 줄에 각 과제를 완료하면 받는 금액 B1,B2,…,BNB_1, B_2, \dots, B_NB1,B2,…,BN이 주어진다.
두두가 모을 수 있는 돈의 최대 금액을 정수 하나로 출력한다.
첫 번째 예제에서 두두는 돈 100으로 시작하고, 다음 순서로 진행할 수 있다.