#include <bits/stdc++.h>
using namespace std;
int gi() {
  int w = 0;
  bool q = 1;
  char c = getchar();
  while ((c < '0' || c > '9') && c != '-') c = getchar();
  if (c == '-') q = 0, c = getchar();
  while (c >= '0' && c <= '9') w = w * 10 + c - '0', c = getchar();
  return q ? w : -w;
}
int a[1001];
int id[1001];
inline bool cmp(const int &x, const int &y) { return a[x] < a[y]; }
int main() {
  int n = gi(), i, w = gi(), s = 0, c;
  for (i = 1; i <= n; i++) s += (a[i] = gi());
  if (w < 0 || w > s) {
    puts("No");
    return 0;
  }
  if (n == 1)
    if (s == w) {
      puts("Yes");
      while (s--) printf("1 1 ");
    } else
      puts("No");
  else {
    if (w == 1) {
      for (i = 1; i <= n; i++)
        if (a[i] == 1) break;
      if (i > n)
        puts("No");
      else {
        puts("Yes");
        printf("%d ", i);
        for (w = 1; w <= n; w++)
          if (w != i)
            while (a[w]--) printf("%d %d ", w, w);
        printf("%d ", i);
      }
      return 0;
    }
    puts("Yes");
    for (i = 1; i <= n; i++) id[i] = i;
    sort(id + 1, id + 1 + n, cmp);
    if (w >= a[id[1]]) {
      c = a[id[1]] - 1;
      for (i = 1; i < a[id[1]]; i++) printf("%d %d ", id[1], id[1]);
      for (i = 2; i <= n; i++)
        while (a[id[i]]--) {
          if (c == w - 1) printf("%d ", id[1]);
          printf("%d %d ", id[i], id[i]);
          c++;
        }
      if (c == w - 1) printf("%d ", id[1]);
      printf("%d ", id[1]);
    } else {
      printf("%d ", id[2]);
      for (i = (a[id[1]] - 1) << 1; i; i--) printf("%d ", id[1]);
      for (i = ((w - 1) << 1) - 1; i; i--) printf("%d ", id[2]);
      printf("%d ", id[1]);
      for (i = (a[id[2]] << 1) - ((w - 1) << 1); i; i--) printf("%d ", id[2]);
      for (i = 3; i <= n; i++)
        for (a[id[i]] <<= 1; a[id[i]]--;) printf("%d ", id[i]);
      printf("%d ", id[1]);
    }
  }
  return 0;
}
