#include <bits/stdc++.h>
using namespace std;
const int NMAX = 755;
const long long INF = 1LL << 62;
long long dp[NMAX][NMAX];
int main() {
  cin.sync_with_stdio(false);
  int n, m;
  cin >> n >> m;
  vector<int> v(n);
  for (int i = 0; i < n; i++) {
    cin >> v[i];
  }
  for (int i = n - 1; i >= 0; i--) {
    for (int j = 0; j <= n - i; j++) {
      if (j) {
        dp[i][j] = dp[i + 1][j - 1];
      } else {
        dp[i][j] = INF;
      }
      if (v[i] >= 0) {
        dp[i][j] = min(dp[i][j], max(0LL, dp[i + 1][j] - v[i]));
      } else {
        dp[i][j] = min(dp[i][j], dp[i + 1][j] - v[i]);
      }
    }
  }
  for (; m; m--) {
    long long x;
    cin >> x;
    int l = 0;
    int r = n;
    int ans = n;
    while (l <= r) {
      int mi = (l + r) / 2;
      if (dp[0][mi] <= x) {
        ans = mi;
        r = mi - 1;
      } else {
        l = mi + 1;
      }
    }
    cout << ans << '\n';
  }
  return 0;
}
