키위주스

용량 C인 N개의 병 사이에서 한 병이 비거나 가득 찰 때까지 주스를 부어, 모든 병의 최종 양에 대한 가격 합을 최대로 만든다.

어려움8동적 계획법그리디수학아직 제출이 없습니다시간 제한2초메모리 제한512 MB

문제

최대 용량이 CC리터인 병이 NN개 있다. ii번 병에는 키위주스가 BiB_i리터 들어 있다.

도토리는 이 키위주스를 팔아 노트북을 새로 사려고 한다. 주스 한 병의 값은 그 병에 들어 있는 양으로만 정해진다. 0리터부터 CC리터까지 양마다 값이 따로 매겨져 있고, 많이 들어 있다고 해서 값이 더 비싸지는 않다. 0리터가 든 병 하나가 CC리터로 가득 찬 병 하나보다 비쌀 수도 있다.

도토리는 병을 그대로 팔지 않고 주스를 서로 옮겨 담아 값을 더 올리려고 한다. 옮겨 담는 규칙은 이렇다. 서로 다른 두 병 AABB를 골라 AA에서 BB로 주스를 옮기면, AA가 비거나 BB가 가득 찰 때까지 멈추지 않고 부어야 한다. 예를 들어 C=10C = 10이고 AA에 5리터, BB에 7리터가 들어 있으면 옮긴 뒤 AA는 3리터, BB는 10리터가 된다. 같은 조건에서 AA가 3리터, BB가 4리터였다면 옮긴 뒤 AA는 0리터, BB는 7리터가 된다.

옮겨 담는 횟수에는 제한이 없다. 도토리는 주스가 모두 팔린다고 확신하므로 병 NN개의 값을 전부 더한 금액을 받는다. 도토리가 받을 수 있는 금액의 최댓값을 구하여라.

입력

첫째 줄에 병의 개수 NN과 병의 최대 용량 CC가 주어진다. (1N151 \le N \le 15, 1C491 \le C \le 49)

둘째 줄에 각 병에 들어 있는 주스의 양 B1,B2,,BNB_1, B_2, \dots, B_N이 주어진다. (0BiC0 \le B_i \le C)

셋째 줄에 양마다의 값 P0,P1,,PCP_0, P_1, \dots, P_C가 0리터부터 CC리터까지 차례로 주어진다. (0Pi1060 \le P_i \le 10^6)

출력

도토리가 받을 수 있는 금액의 최댓값을 한 줄에 출력한다.