小 A 计划在一家大型书店购买书籍,准备参加学校的读书节。他携带了 C 张书店赠送的购书卡。
书店的书架上摆放了 N 本书籍,按照特定顺序排列,小 A 需要按此顺序购买。其中第 i 本书的价格为 P_i 元。
在收银员扫码每本书的价格的过程中,小 A 可以:
请帮助小 A 计算,在购买完所有 N 本书籍后,他能剩余的购书卡面值总和最大是多少,如果无论如何都无法完成所有购买,输出 -1。
第一行包含两个整数 C 和 N,分别表示购书卡数量和书籍数量。
接下来 C 行,每行一个整数,表示一张购书卡的面值。
接下来 N 行,每行一个整数,表示按顺序排列的每本书的价格 P_i。
输出一行,包含一个整数:小 A 在购买完所有书籍后能剩余的购书卡面总和最大值,若无法完成所有购买,输出 -1。
3 6 12 15 10 6 3 3 2 3 7
12
6 6 15 20 25 10 30 20 5 10 15 10 20 25
35
3 7 90 30 20 15 25 10 20 30 25 15
-1
小 A 有三张购书卡,面值分别为 12、15 和 10,需要按顺序购买价格为 6、3、3、2、3 和 7 的书籍。
一种最优方案是:
因此,最大剩余面值总和为 12。
见选手目录下的 book/book4.in 与 book/book4.ans。
对于 40\% 的数据,满足 1 \le C \le 6。
对于 100\% 的数据,满足 1 \le C \le 16,1 \le N \le 10^5,1 \le P_i \le 10^4,购书卡面值范围为 [1, 10^8]。