#include <bits/stdc++.h>
#pragma comment(linker, "/STACK:256000000")
using namespace std;
int ar[10000];
int n;
int w;
int main() {
  cin >> n >> w;
  int s = 0;
  int m = 0;
  for (int i = 0; i < n; ++i) {
    cin >> ar[i];
    s += ar[i];
    if (ar[i] < ar[m]) m = i;
  }
  if (w < 1 || w > s || (w == 1 && ar[m] > 1) || (n == 1 && w != s)) {
    cout << "No";
    return 0;
  }
  cout << "Yes" << endl;
  if (w == s) {
    for (int i = 0; i < n; ++i) {
      while (ar[i]) {
        --ar[i];
        cout << i + 1 << ' ' << i + 1 << ' ';
      }
    }
    return 0;
  }
  if (w == 1) {
    --ar[m];
    cout << m + 1 << ' ';
    for (int i = 0; i < n; ++i) {
      while (ar[i]) {
        --ar[i];
        cout << i + 1 << ' ' << i + 1 << ' ';
      }
    }
    cout << m + 1;
    return 0;
  }
  int k = (m + 1) % n;
  int c = s - w;
  --ar[m];
  cout << m + 1 << ' ';
  while (ar[k] > 1 && c) {
    --c;
    --ar[k];
    cout << k + 1 << ' ' << k + 1 << ' ';
  }
  cout << m + 1 << ' ';
  --ar[k];
  cout << k + 1 << ' ';
  for (int i = 0; c; ++i) {
    if (i >= n) exit(123);
    while (ar[i] && c) {
      --c;
      --ar[i];
      cout << i + 1 << ' ' << i + 1 << ' ';
    }
  }
  cout << k + 1 << ' ';
  for (int i = 0; i < n; ++i) {
    while (ar[i]) {
      --ar[i];
      cout << i + 1 << ' ' << i + 1 << ' ';
    }
  }
  return 0;
}
