收拾生活用品
描述
周幽王想把自己的生活用品整理一下。现在已经搞好了\(n\)堆生活用品。现在有\(m\)个袋子可以用来装。一个容量为 \(s\) 的袋子能装入不超过容量为\( s\) 的生活用品(可以正好等于),一堆生活用品要求只能用一个袋子装,一个袋子也只能用来装一堆生活用品。一个袋子的价格是由袋子的容量来决定,容量为 \(s\)的袋子银子数为\(s\)。
请编程帮周幽王计算要将\( n\)堆生活用品全部装袋,用掉的袋子最少用多少银子?
格式
输入格式
第\( 1\) 行两个正整数 \(n\) 和\( m\),表示需要处理 \(n \)堆生活用品,现在有 \(m\) 个袋子。
第\( 2\) 行 \(n\) 个整数,依次表示每堆生活用品的重量。
第\( 3 \)行\( m\) 个整数,依次表示每个袋子的容量。
输出格式
输出一个整数,如果能将所有的生活用品装入已有的袋子,则输出用掉的袋子最少值多少银子?如果无法将所有的生活用品装入 \(m \)个袋子,则输出\(“-1”\)(不加引号)。
样例1
输入样例1
3 4
3 6 4
4 5 7 3
输出样例1
14
限制
\(100\)%的数据保证 \(1≤n,m≤50000\),每个袋子的容量和每堆生活用品的重量不超过 \(10000\)。
来源
地址:\(vijos\),芜湖\(OI\)团队
作者:黑暗路西法\(08\)
模拟赛\(T2\)