#include <bits/stdc++.h>
using namespace std;
int n, w, s, a[110];
int in[110], out[110];
int main() {
  scanf("%d%d", &n, &w);
  for (int i = 0; i < n; i++) {
    scanf("%d", &a[i]);
    s += a[i];
  }
  if (n == 1 && w == a[0]) {
    puts("Yes");
    for (int i = 0; i < w * 2; i++) {
      printf("1 ");
    }
  } else if (n >= 2 && w >= 2 && w <= s) {
    in[0] = a[0] - 1;
    in[1] = a[1] - 1;
    for (int i = 2; i < n; i++) {
      in[i] = a[i];
    }
    for (int i = 0; i < n; i++) {
      int x = min(w - 2, in[i]);
      in[i] -= x;
      out[i] += x;
      w -= x;
    }
    puts("Yes");
    for (int i = 0; i < n; i++) {
      for (int j = 0; j < out[i] * 2; j++) {
        printf("%d ", i + 1);
      }
    }
    printf("1 ");
    for (int i = 1; i < n; i++) {
      for (int j = 0; j < in[i] * 2; j++) {
        printf("%d ", i + 1);
      }
    }
    printf("1 2 ");
    for (int i = 0; i < in[0] * 2; i++) {
      printf("1 ");
    }
    puts("2");
  } else if (n >= 2 && w == 1) {
    int k = 0;
    while (k < n && a[k] != 1) {
      k++;
    }
    if (k == n) {
      puts("No");
    } else {
      puts("Yes");
      printf("%d ", k + 1);
      for (int i = 0; i < n; i++) {
        if (i == k) {
          continue;
        }
        for (int j = 0; j < a[i] * 2; j++) {
          printf("%d ", i + 1);
        }
      }
      printf("%d\n", k + 1);
    }
  } else {
    puts("No");
  }
  return 0;
}
