2336 - 购物buy
描述

小梦完成了很多游园活动里面的项目,拿到了很多的奖励分,现在她可以用这些奖励分去兑换中心兑换奖品了。

小梦拿着m 分准备去兑换奖品,兑换中心里有n 件奖品,每个奖品都有一个兑换分数和一定的价值,比如说书的兑换分数是3 分,对应的价值是5 元。

为了方便兑换,小朋友们把所有奖品的分数分成了3 类,第1 类奖品的兑换分数是1 分,第2类奖品的兑换分数是2 分,第3 类奖品的兑换分数是3 分。第i 个奖品的兑换分数是w_i(1\leq w_i\leq3) 分,对应的价值是v_i 元。

很明显,小梦希望用不超过m 分兑换奖品,并且要使得兑换到的奖品价值总和最大。现在,请你来帮助小梦计算这个问题吧。


输入

输入的第一行是2 个正整数nm,表示奖品的总数和小梦的分数。

接下来一行有n 个正整数w_i,分别表示每个奖品的兑换分数。

接下来一行有n 个正整数v_i,分别表示每个奖品的价值。


输出

输出可以兑换到的奖品的最大价值总和。

样例

输入

3 3
1 2 2
1 2 3

输出

4

输入

5 7
3 2 1 2 1
2 2 1 3 1

输出

7

输入

16 24
1 1 1 1 2 3 1 2 3 3 2 2 3 3 2 3
5 2 5 3 4 10 1 9 6 1 8 5 7 7 6 8

输出

75
提示

输入输出样例1 提示:

这里我们可以选择第1 件和第3 件商品,总的价值是4。

输入输出样例2 提示:

选择第1,3,4 和5 个商品,也可以选择第2,3,4 和5 个物品

对于所有的数据,保证1\leq n \leq10^5,1 \leq m \leq 3×10^5,1  \leq w_i  \leq3,1  \leq v_i \leq 10^6

数据点性质:

数据1~3: n \leq 20

数据4~5: n \leq 2000,m\leq6000

数据6:      n = 50000,w_i 只有一种可能性

数据7:      n = 80000 w_i 只有一种可能性

数据8:      n = 100000 w_i 只有两种可能性

数据9~10:n \leq 100000


题目参数
时间限制 1 秒
内存限制 128 MB
提交次数 149
通过次数 27