
###pyrival template for fast IO
import os
import sys
from io import BytesIO, IOBase
# region fastio
BUFSIZE = 8192
class FastIO(IOBase):
    newlines = 0
    def __init__(self, file):
        self._fd = file.fileno()
        self.buffer = BytesIO()
        self.writable = "x" in file.mode or "r" not in file.mode
        self.write = self.buffer.write if self.writable else None
    def read(self):
        while True:
            b = os.read(self._fd, max(os.fstat(self._fd).st_size, BUFSIZE))
            if not b:
                break
            ptr = self.buffer.tell()
            self.buffer.seek(0, 2), self.buffer.write(b), self.buffer.seek(ptr)
        self.newlines = 0
        return self.buffer.read()
    def readline(self):
        while self.newlines == 0:
            b = os.read(self._fd, max(os.fstat(self._fd).st_size, BUFSIZE))
            self.newlines = b.count(b"\n") + (not b)
            ptr = self.buffer.tell()
            self.buffer.seek(0, 2), self.buffer.write(b), self.buffer.seek(ptr)
        self.newlines -= 1
        return self.buffer.readline()
    def flush(self):
        if self.writable:
            os.write(self._fd, self.buffer.getvalue())
            self.buffer.truncate(0), self.buffer.seek(0)
class IOWrapper(IOBase):
    def __init__(self, file):
        self.buffer = FastIO(file)
        self.flush = self.buffer.flush
        self.writable = self.buffer.writable
        self.write = lambda s: self.buffer.write(s.encode("ascii"))
        self.read = lambda: self.buffer.read().decode("ascii")
        self.readline = lambda: self.buffer.readline().decode("ascii")
sys.stdin, sys.stdout = IOWrapper(sys.stdin), IOWrapper(sys.stdout)
input = lambda: sys.stdin.readline().rstrip("\r\n")
t=int(input())
while t>0:
    t-=1
    n,m=[int(x) for x in input().split()]
    arr=[int(x) for x in input().split()]
    query1=[int(x) for x in input().split()]
    query=[[None,None] for i in range(m)]
    for i in range(m):
        query[i][0],query[i][1]=query1[i],i
    query.sort()
    ans=[-1 for x in range(m)]
    left=[]
    total=sum(arr)
    if total>0:
        for i in range(m):
            if query[i][0]%total==0:
                ans[query[i][1]]+=((query[i][0]//total)-1)*(n)
                left.append([total,query[i][1]])
            else:
                ans[query[i][1]]+=(query[i][0]//total)*(n)
                left.append([query[i][0]%total,query[i][1]])
        left.sort()
        #print(ans)
        #print(left)
        pre=[arr[0]]
        for i in range(1,n):
            pre.append(pre[-1]+arr[i])
        i=0;j=0
        while i<n and j<m:
            if left[j][0]==0:
                j+=1
                continue
            if pre[i]>=left[j][0]:
                ans[left[j][1]]+=i+1
                j+=1
            else:
                i+=1
        ans2=[None for x in range(m)]
        i=0;j=0
        while i<n and j<m:
            if pre[i]>=query[j][0]:
                ans2[query[j][1]]=i
                j+=1
            else:
                i+=1
        #print(ans2)
        for i in range(m):
            if ans2[i]!=None:
                ans[i]=min(ans[i],ans2[i])
        print(*ans)

    else:
        pre=[arr[0]]
        for i in range(1,n):
            pre.append(pre[-1]+arr[i])
        ans2=[None for x in range(m)]
        i=0;j=0
        while i<n and j<m:
            if pre[i]>=query[j][0]:
                ans2[query[j][1]]=i
                j+=1
            else:
                i+=1
        for i in range(m):
            if ans2[i]==None:
                ans2[i]=-1
        print(*ans2)

