#include <bits/stdc++.h>
using namespace std;
long long pwr(long long base, long long p, long long mod = (1000000007LL)) {
  long long ans = 1;
  while (p) {
    if (p & 1) ans = (ans * base) % mod;
    base = (base * base) % mod;
    p /= 2;
  }
  return ans;
}
long long gcd(long long a, long long b) {
  if (b == 0) return a;
  return gcd(b, a % b);
}
int n, m;
long long arr[755], guesses[200005], DP[755][755];
long long dp(int i, int rem) {
  if (i == n + 1) return 0;
  if (DP[i][rem] != -1) return DP[i][rem];
  long long ans = max(0LL, dp(i + 1, rem) - arr[i]);
  if (rem > 0) ans = min(ans, dp(i + 1, rem - 1));
  return DP[i][rem] = ans;
}
int main() {
  scanf("%d%d", &n, &m);
  for (int i = 1; i <= n; i++) scanf("%lld", &arr[i]);
  for (int i = 1; i <= m; i++) scanf("%lld", &guesses[i]);
  memset(DP, -1, sizeof(DP));
  for (int i = 1; i <= m; i++) {
    int ans = n, lo = 0, hi = n;
    while (lo <= hi) {
      int mid = (lo + hi) / 2;
      if (guesses[i] >= dp(1, mid)) {
        ans = min(ans, mid);
        hi = mid - 1;
      } else {
        lo = mid + 1;
      }
    }
    printf("%d\n", ans);
  }
  return 0;
}
