#2958. 背包

背包

题目描述

这是一道背包模板题。有 nn 个物品,第 ii 个物品的价值是 aia_i

mm 次询问,每次询问给出一个整数 xx,表示有一个大小为 xx 的背包。你需要选出一段非空区间,使得其中的物品在价值和不大于背包大小的前提下,价值和尽可能大,请输出价值和。

输入格式

从文件 backpack.in 中读入数据。

第一行,两个正整数 n,mn,m,表示物品数量和询问次数。

第二行,nn 个整数 aia_i,表示第 ii 个物品的价值。

接下来 mm 行,每行一个整数 xx,表示询问的背包大小。

输出格式

输出到文件 backpack.out 中。

mm 行,每行一个整数,表示询问的答案。

特别地,如果不存在非空区间,其中的物品价值和不大于 xx,则输出 No Solution

样例 1

输入

4 3
5 -3 -1 2
2
3
6

输出

2
3
5

样例 2

输入

见下发文件中的backpack2.in

输出

见下发文件中的backpack2.out

数据范围与提示

对于 30%30\% 的数据,满足 1n101\leqslant n\leqslant10

对于 100%100\% 的数据,满足 1n×m106,0ai109,0x10181\leqslant n\times m\leqslant 10^6,0\leqslant|a_i|\leqslant10^9,0\leqslant|x|\leqslant10^{18}