#include <bits/stdc++.h>
using namespace std;
int a[(int)2e5 + 1];
void solve() {
  int t;
  cin >> t;
  while (t--) {
    int n, m;
    long long sum;
    cin >> n >> m;
    vector<long long> maxUntil(n);
    for (int i = 0; i < n; i++) {
      cin >> a[i];
    }
    sum = maxUntil[0] = a[0];
    for (int i = 1; i < n; i++) {
      sum += a[i];
      maxUntil[i] = max(sum, maxUntil[i - 1]);
    }
    for (int i = 0; i < m; i++) {
      int x;
      cin >> x;
      if (x > maxUntil[n - 1] && sum <= 0) {
        cout << "-1 ";
        continue;
      }
      int laps =
          (x <= maxUntil[n - 1] ? 0 : (x + sum - maxUntil[n - 1] - 1) / sum);
      x -= sum * laps;
      long long ans = laps * n;
      int whereStops =
          lower_bound(maxUntil.begin(), maxUntil.end(), x) - maxUntil.begin();
      cout << ans + whereStops << " ";
    }
    cout << endl;
  }
}
int main() { solve(); }
