#include <bits/stdc++.h>
using namespace std;
inline int read() {
  char c;
  int flag = 1;
  while ((c = getchar()) < '0' || c > '9') {
    if (c == '-') {
      flag = -1;
    }
  }
  int count = c - '0';
  while ((c = getchar()) >= '0' && c <= '9') {
    count *= 10;
    count += c - '0';
  }
  return count * flag;
}
inline void print(int x) {
  if (x < 0) {
    x = -x;
    putchar('-');
  }
  if (x > 9) {
    print(x / 10);
  }
  putchar(x % 10 + '0');
}
const int N = 110;
int a[N];
signed main() {
  int n = read(), w = read();
  int posi = 0;
  int sum = 0;
  int minn = INT_MAX;
  for (register int i = 1; i <= n; i++) {
    a[i] = read();
    sum += a[i];
    if (minn > a[i]) {
      minn = a[i];
      posi = i;
    }
  }
  if (w <= 0 || sum < w) {
    printf("No");
    return 0;
  }
  if (w < minn) {
    if (w == 1) {
      printf("No");
      return 0;
    }
    int pp = 0;
    for (register int i = 1; i <= n; i++) {
      if (i != posi && a[i] != 0) {
        pp = i;
        a[i]--;
        break;
      }
    }
    if (pp == 0) {
      printf("No");
      return 0;
    }
    printf("Yes\n");
    print(pp);
    putchar(' ');
    while (a[posi] >= w) {
      print(posi);
      putchar(' ');
      print(posi);
      putchar(' ');
      a[posi]--;
    }
    for (register int i = 1; i <= n; i++) {
      if (i == pp || i == posi) {
        continue;
      }
      while (a[i]) {
        print(i);
        putchar(' ');
        print(i);
        putchar(' ');
        a[i]--;
      }
    }
    print(pp);
    putchar(' ');
    print(posi);
    putchar(' ');
    while (a[pp]) {
      print(pp);
      putchar(' ');
      print(pp);
      putchar(' ');
      a[pp]--;
    }
    print(posi);
    putchar(' ');
    a[posi]--;
    while (a[posi]) {
      print(posi);
      putchar(' ');
      print(posi);
      putchar(' ');
      a[posi]--;
    }
  } else {
    printf("Yes\n");
    print(posi);
    putchar(' ');
    int res = sum - w;
    for (register int i = 1; i <= n; i++) {
      if (i == posi) {
        continue;
      }
      while (a[i]) {
        if (res) {
          print(i);
          putchar(' ');
          print(i);
          putchar(' ');
          res--;
          a[i]--;
        }
        if (res == 0) {
          break;
        }
      }
      if (res == 0) {
        break;
      }
    }
    print(posi);
    putchar(' ');
    a[posi]--;
    for (register int i = 1; i <= n; i++) {
      while (a[i]) {
        print(i);
        putchar(' ');
        print(i);
        putchar(' ');
        a[i]--;
      }
    }
  }
  return 0;
}
