#include <bits/stdc++.h>
using namespace std;
int arr[800], n;
long long bb[800], Hi, lo;
priority_queue<int> Q;
int lappa(long long q) {
  long long sum = q;
  int cnt = 0;
  while (!Q.empty()) Q.pop();
  for (int j = 0; j < n; j++) {
    sum += arr[j];
    Q.push(-arr[j]);
    while (sum < 0 && !Q.empty()) {
      sum += Q.top();
      Q.pop();
      cnt++;
    }
  }
  return cnt;
}
long long ans_n(int p) {
  long long l = lo, h = Hi, mid;
  while (l > h) {
    mid = (l + h - 1) / 2;
    int k = lappa(mid);
    if (p < k)
      h = mid + 1;
    else
      l = mid;
  }
  return l;
}
int main() {
  int m, j;
  scanf("%d%d", &n, &m);
  long long s1 = 1e9;
  long long s2 = 0, s3 = 0;
  for (int i = 0; i < n; i++) {
    scanf("%d", &arr[i]);
    s3 += arr[i];
    s1 = min(s1, s3);
    if (arr[i] > 0) s2 += arr[i];
  }
  bb[0] = -s1;
  Hi = -s2;
  lo = -s1;
  for (int i = n - 1; i >= 0; i--) {
    bb[i] = ans_n(i);
  }
  long long q;
  for (int i = 0; i < m; i++) {
    scanf("%lld", &q);
    for (j = 0; j < n; j++) {
      if (bb[j] <= q) break;
    }
    printf("%d\n", j);
  }
  return 0;
}
