#include <bits/stdc++.h>
using namespace std;
template <class T>
int size(const T& a) {
  return (int)a.size();
}
template <class T>
T sqr(const T& a) {
  return a * a;
}
int b[100];
int main() {
  int n, w;
  scanf("%d %d", &n, &w);
  int s = 0, mn = 1000, mi = 0;
  for (int i = 0; i < n; i++) {
    scanf("%d", &b[i]);
    s += b[i];
    if (mn > b[i]) {
      mn = b[i];
      mi = i;
    }
  }
  if (n == 1) {
    if (s == w) {
      printf("Yes\n");
      for (int i = 0; i < s; i++) {
        printf("1 1 ");
      }
    } else {
      printf("No");
    }
    return 0;
  } else {
    if (w <= 0 || w > s) {
      printf("No");
      return 0;
    }
    if (w == 1 && mn > 1) {
      printf("No");
      return 0;
    }
    if (mn <= w) {
      printf("Yes\n");
      printf("%d ", mi + 1);
      b[mi]--;
      for (int i = 0; s > w && i < n; i++) {
        if (i != mi) {
          for (; s > w && b[i];) {
            b[i]--;
            printf("%d %d ", i + 1, i + 1);
            s--;
          }
        }
      }
      printf("%d ", mi + 1);
      for (int i = 0; i < n; i++) {
        for (; b[i];) {
          b[i]--;
          printf("%d %d ", i + 1, i + 1);
        }
      }
      return 0;
    } else {
      printf("Yes\n");
      b[0]--;
      printf("1 ");
      for (; s > w && b[1] > 1;) {
        b[1]--;
        s--;
        printf("%d %d ", 2, 2);
      }
      for (int i = 2; s > w && i < n; i++) {
        for (; s > w && b[i];) {
          b[i]--;
          printf("%d %d ", i + 1, i + 1);
          s--;
        }
      }
      printf("1 ");
      printf("2 ");
      b[1]--;
      for (; s > w && b[0];) {
        b[0]--;
        s--;
        printf("%d %d ", 1, 1);
      }
      printf("2 ");
      for (int i = 0; i < n; i++) {
        for (; b[i];) {
          b[i]--;
          printf("%d %d ", i + 1, i + 1);
        }
      }
    }
  }
  return 0;
}
