题目描述
给出n个数a1,a2,⋯,an,和一个空的数列b。对于i=1∼n,进行以下操作:
- 将1,2,3,⋯,ai按从小到大的顺序依次添加到b的尾部。
所有操作完成后,你需要回答Q个询问,每个询问包含1个正整数s,你要输出满足以下条件的最小正整数m的值:∑i=1mbi≥S
如果没有满足条件的m,输出−1。
输入格式
第1行,2个正整数n,Q
第2行,n个正整数a1,a2,⋯,an
第3∼Q+2行,每行1个整数,表示一个询问
前50%数据:1≤Q≤100;
前70%数据:所有ai的总和不超过105。
100%数据:
1≤n≤105;1≤Q≤105;
1≤ai≤106;1≤S≤1018。
输出格式
输出Q行,对每个询问,用一行输出答案。
样例输入
4 3
1 2 3 4
4
10
25
样例输出
3
6
-1
提示
第一次操作a1=1,数列b=[1];第二次操作a2=2,数列b=[1,1,2];第三次操作a3=3,数列b=[1,1,2,1,2,3];第四次操作a4=4,数列b=[1,1,2,1,2,3,1,2,3,4]。
对第1个询问S=3:前3个数1+1+2=4≥S,所以m=3是满足条件的最小值。
对第2个询问S=10:前6个数1+1+2+1+2+3=10≥S,所以m=6是满足条件的最小值。
对第3个询问S=25:b数列所有数总和20<S,所以没有满足条件的m。
1 1
1
1
1
1 1
1
1
1
5 3
1000000 1000000 1000000 1000000 1000000
0
100000000000
200000000000
1
447214
632456