#include <bits/stdc++.h>
const long long mx = (long long)1e18;
using namespace std;
int c[105];
int main() {
  int n, i, j, w;
  while (~scanf("%d%d", &n, &w)) {
    int v0 = 100000000, v1 = 0;
    for (i = 0; i < n; i++) {
      scanf("%d", &c[i]);
      v0 = min(v0, c[i]);
      v1 += c[i];
    }
    i = min_element(c, c + n) - c;
    if (w >= v0 && w <= v1) {
      puts("Yes");
      printf("%d", i + 1);
      for (j = 0; j < n; j++)
        if (i != j)
          while (w < v1 && c[j] > 0)
            c[j]--, v1--, printf(" %d %d", j + 1, j + 1);
      printf(" %d", i + 1);
      for (--c[i]; c[i] > 0; c[i]--) printf(" %d %d", i + 1, i + 1);
      for (j = 0; j < n; j++)
        while (c[j] > 0) {
          printf(" %d %d", j + 1, j + 1);
          c[j]--;
        }
      printf("\n");
    } else if (n > 1 && w > 1 && w < v0) {
      puts("Yes");
      j = i ? 0 : 1;
      w--;
      printf("%d", j + 1);
      for (; c[i] > 1; c[i]--, v1--) printf(" %d %d", i + 1, i + 1);
      printf(" %d %d", j + 1, i + 1);
      c[j]--, v1--;
      for (j = 0; j < n; j++)
        if (i != j)
          while (w < v1 && c[j] > 0)
            c[j]--, v1--, printf(" %d %d", j + 1, j + 1);
      printf(" %d", i + 1);
      for (--c[i]; c[i] > 0; c[i]--) printf(" %d %d", i + 1, i + 1);
      for (j = 0; j < n; j++)
        while (c[j] > 0) {
          printf(" %d %d", j + 1, j + 1);
          c[j]--;
        }
      printf("\n");
    } else
      puts("No");
  }
  return 0;
}
