#include <bits/stdc++.h>
using namespace ::std;
const int N = 200000 + 5;
int n;
int m;
int a[N];
long long ac[N];
vector<pair<long long, int> > values;
long long test(int x) {
  int lo = 0, hi = values.size() - 1;
  while (lo < hi) {
    int mi = lo + (hi - lo) / 2;
    if (values[mi].first < x)
      lo = mi + 1;
    else
      hi = mi;
  }
  if (values[lo].first < x) {
    if (ac[n] <= 0) return -1;
    long long F = x / ac[n];
    long long left = x - F * ac[n];
    long long res = left <= 0 ? F * n : LLONG_MAX;
    lo = 0;
    hi = values.size() - 1;
    while (lo < hi) {
      int mi = lo + (hi - lo) / 2;
      if (values[mi].first < left)
        lo = mi + 1;
      else
        hi = mi;
    }
    if (values[lo].first >= left) res = min(res, F * n + values[lo].second);
    long long S = F + 1;
    left = x - S * ac[n];
    if (left <= 0) res = min(res, S * n);
    lo = 0;
    hi = values.size() - 1;
    while (lo < hi) {
      int mi = lo + (hi - lo) / 2;
      if (values[mi].first < left)
        lo = mi + 1;
      else
        hi = mi;
    }
    if (values[lo].first >= left) res = min(res, S * n + values[lo].second);
    long long T = F - 1;
    left = x - T * ac[n];
    if (left <= 0) res = min(res, T * n);
    lo = 0;
    hi = values.size() - 1;
    while (lo < hi) {
      int mi = lo + (hi - lo) / 2;
      if (values[mi].first < left)
        lo = mi + 1;
      else
        hi = mi;
    }
    if (values[lo].first >= left) res = min(res, T * n + values[lo].second);
    return res - 1;
  } else
    return values[lo].second - 1;
}
void solve() {
  for (int i = 1; i <= n; i++) {
    ac[i] = ac[i - 1] + a[i];
  }
  values.clear();
  values.emplace_back(make_pair(ac[1], 1));
  for (int i = 2; i <= n; i++) {
    if (ac[i] > values.back().first) {
      values.emplace_back(make_pair(ac[i], i));
    }
  }
  for (int i = 1; i <= m; i++) {
    int x;
    scanf("%d", &x);
    printf("%lld%c", test(x), " \n"[i == m]);
  }
}
int main() {
  int t;
  scanf("%d", &t);
  while (t--) {
    scanf("%d %d", &n, &m);
    for (int i = 1; i <= n; i++) {
      scanf("%d", a + i);
    }
    solve();
  }
  return 0;
}
