SW 역량 테스트

T분 안에 문제를 골라 연속으로 풀면서 시작 시각에 따라 줄어드는 점수의 합이 최대가 되도록 순서를 정한다.

보통6동적 계획법정렬그리디아직 제출이 없습니다시간 제한2초메모리 제한512 MB

문제

SW 역량 테스트는 총 TT분 동안 진행되고, 문제는 NN개가 나온다. 시험이 진행되는 동안 아무 때나 소스 코드를 제출할 수 있다.

ii번 문제를 tt분에 맞히면 Mit×PiM_i - t \times P_i점을 받는다. 응시자가 ii번 문제를 푸는 데 걸리는 시간은 RiR_i분이다.

응시자는 한 번에 한 문제만 풀고, 풀기 시작한 문제는 중간에 멈추지 않는다. 어떤 문제를 어떤 순서로 풀지는 자유롭게 정하고, 풀지 않고 넘기는 문제가 있어도 된다. 시험이 시작한 시각을 0분이라고 하면, 푼 문제를 순서대로 이어 붙였을 때 마지막 문제를 맞히는 시각도 TT분을 넘을 수 없다.

최종 점수는 맞힌 문제의 점수를 모두 더한 값이고, 한 문제도 풀지 않으면 0점이다. 응시자가 얻을 수 있는 점수의 최댓값을 구하는 프로그램을 작성하시오.

입력

첫째 줄에 NNTT가 주어진다. (1N501 \le N \le 50, 1T1000001 \le T \le 100\,000)

둘째 줄에 M1,M2,,MNM_1, M_2, \ldots, M_N이, 셋째 줄에 P1,P2,,PNP_1, P_2, \ldots, P_N이, 넷째 줄에 R1,R2,,RNR_1, R_2, \ldots, R_N이 공백으로 구분되어 주어진다. (1Mi,Pi,Ri1000001 \le M_i, P_i, R_i \le 100\,000)

출력

첫째 줄에 응시자가 얻을 수 있는 점수의 최댓값을 출력한다.