#include <cstdio>
#include <algorithm>
#include <cstring>
using namespace std;

const int MAX_N = 500005;

int N, D, d[MAX_N], pos[MAX_N], f[MAX_N];

int main() {
  scanf("%d%d", &N, &D);
  for (int i = 1; i <= N; ++i)
    scanf("%d", &d[i]);
  
  pos[0] = D;
  for (int i = 1; i <= N; ++i) {
    int nxt;
    pos[i] = pos[i - 1], nxt = abs(pos[i] - d[i]);
    if (pos[i] > nxt) pos[i] = nxt;
  }

  f[N + 1] = 1;
  for (int i = N; i; --i) {
    if (f[i + 1] * 2 > d[i]) f[i] = f[i + 1] + d[i];
    else f[i] = f[i + 1];
  }

  int Q;
  scanf("%d", &Q);
  
  while (Q--) {
    int p;
    scanf("%d", &p);
    if (pos[p - 1] >= f[p + 1]) puts("YES");
    else puts("NO");
  }
  
  return 0;
}
