#include <bits/stdc++.h>
using namespace std;
int dx4[] = {-1, 0, 1, 0};
int dy4[] = {0, 1, 0, -1};
int dx8[] = {-1, -1, 0, 1, 1, 1, 0, -1};
int dy8[] = {0, 1, 1, 1, 0, -1, -1, -1};
void Duxar(int _this_line) {}
bool AreEqual(double a, double b) { return (fabs(a - b) < 1e-10); }
template <class T>
bool GetNr(T &_value) {
  T _sign = 1;
  char ch;
  _value = 0;
  while (!isdigit(ch = getchar())) {
    if (ch == -1) {
      return false;
    }
    ch == '-' ? _sign = -1 : _sign = 1;
  }
  do {
    _value = _value * 10 + (ch - '0');
  } while (isdigit(ch = getchar()));
  _value *= _sign;
  return true;
}
void PutNr(int _value) { printf("%d ", _value); }
template <class T>
void PutNr(T _value, char _ch = ' ') {
  cout << _value << _ch;
}
int N, W;
vector<int> values, suffix;
int main() {
  string fileInput = "sum";
  int i, sum = 0, one = 0;
  GetNr(N);
  GetNr(W);
  values.resize(1 + N);
  suffix.resize(1 + N);
  for (i = 1; i <= N; ++i) {
    GetNr(values[i]);
    sum += values[i];
    if (values[i] == 1) {
      one = i;
    }
  }
  if ((W == 1 && one == 0) || W > sum || W < 0 || (N == 1 && W != sum)) {
    PutNr("No", '\n');
    return 0;
  }
  if (N == 1 && W == sum) {
    PutNr("Yes", '\n');
    while (W--) {
      PutNr(1);
      PutNr(1);
    }
    putchar('\n');
    return 0;
  }
  if (W == 1 && one) {
    PutNr("Yes", '\n');
    PutNr(one);
    for (i = 1; i <= N; ++i) {
      if (i != one) {
        while (values[i]--) {
          PutNr(i);
          PutNr(i);
        }
      }
    }
    PutNr(one);
    putchar('\n');
    return 0;
  }
  W -= 2;
  --values[1];
  --values[2];
  for (i = N; i && W; --i) {
    int aux = min(W, values[i]);
    W -= aux;
    values[i] -= aux;
    suffix[i] = aux;
  }
  PutNr("Yes", '\n');
  PutNr(1);
  for (i = 2; i <= N; ++i) {
    while (values[i]--) {
      PutNr(i);
      PutNr(i);
    }
  }
  PutNr(1);
  PutNr(2);
  while (values[1]--) {
    PutNr(1);
    PutNr(1);
  }
  PutNr(2);
  for (i = 1; i <= N; ++i) {
    while (suffix[i]--) {
      PutNr(i);
      PutNr(i);
    }
  }
  return 0;
}
