#include <bits/stdc++.h>
using namespace std;
const int N = 755;
int n, m;
long long a[N], f[N][N], w[N];
inline long long in(long long x = 0, char ch = getchar()) {
  while (ch > '9' || ch < '0') ch = getchar();
  while (ch >= '0' && ch <= '9')
    x = (x << 3) + (x << 1) + ch - '0', ch = getchar();
  return x;
}
void work(long long x) {
  int l = 0, r = n, mid;
  while (l <= r) {
    mid = (l + r) >> 1;
    if (f[1][mid] <= x)
      r = mid - 1;
    else
      l = mid + 1;
  }
  printf("%d\n", l);
}
int main() {
  scanf("%d%d", &n, &m);
  for (int i = 1; i <= n; i++) cin >> a[i];
  memset(f, 0x3f, sizeof(f));
  f[n + 1][0] = 0LL;
  for (int i = n; i; i--)
    for (int j = 0; j < n - i + 1; j++) {
      f[i][j] = min(f[i][j], max(0LL, f[i + 1][j] - a[i]));
      f[i][j + 1] = min(f[i][j + 1], f[i + 1][j]);
    }
  for (; m--;) work(in());
  return 0;
}
