import bisect from itertools import accumulate n,q=map(int,input().split()) a=list(map(int,input().split())) a_ind=list(accumulate(a)) b=[] for i in a: b.append(i*(i+1)//2) b=list(accumulate(b)) for _ in range(q): s=int(input()) if s>b[-1]: print(-1) continue ind=bisect.bisect_right(b,s) if ind==0: ok=a[0];ng=0 while ok-ng>1: mid=(ok+ng)//2 if mid*(mid+1)//2>=s: ok=mid else: ng=mid print(ok) continue s-=b[ind-1] if s==0: print(a_ind[ind-1]) continue ok=a[ind];ng=0 while ok-ng>1: mid=(ok+ng)//2 if mid*(mid+1)//2>=s: ok=mid else: ng=mid print(a_ind[ind-1]+ok)