#include <bits/stdc++.h>
using namespace std;
int main() {
  long long n, w;
  cin >> n >> w;
  long long m[n];
  long long mi = 0, ma = 1000000009;
  for (int i = 0; i < n; i++) {
    cin >> m[i];
    if (m[i] < ma) {
      ma = m[i];
      mi = i;
    }
    m[i] *= 2;
  }
  long long sum = 0;
  vector<long long> en;
  for (int i = 0; i < n; i++) {
    if (m[i] % 2) {
      m[i]--;
      en.push_back(i + 1);
    }
    sum += m[i] / 2;
  }
  if (sum < w || (ma > w && n == 1) || (ma > w && w == 1) || w < 1) {
    cout << "No" << endl;
    return 0;
  }
  cout << "Yes" << endl;
  if (n == 1) {
    for (int i = 0; i < m[0]; i++) {
      cout << "1 ";
    }
    return 0;
  }
  w--;
  m[mi] -= 2;
  sum--;
  ma--;
  long long ind = 0;
  if (ma <= w) {
    cout << mi + 1 << " ";
    while (sum - w > 0) {
      if (ind == mi) ind++;
      if (m[ind] > 0) {
        cout << ind + 1 << " " << ind + 1 << " ";
        m[ind] -= 2;
        sum--;
      } else
        ind++;
    }
    cout << mi + 1 << " ";
  } else {
    cout << mi + 1 << " ";
    for (int i = 0; i < n; i++) {
      if (i != mi && m[i]) {
        ind = i;
        break;
      }
    }
    for (int i = 0; i < n; i++) {
      if (i == mi) continue;
      if (i == ind) {
        while (m[ind] > 2) {
          cout << ind + 1 << " " << ind + 1 << " ";
          m[ind] -= 2;
        }
      } else {
        while (m[i] > 0) {
          cout << i + 1 << " " << i + 1 << " ";
          m[i] -= 2;
        }
      }
    }
    cout << mi + 1 << " ";
    cout << ind + 1 << " ";
    m[ind] -= 2;
    sum--;
    while (m[mi] / 2 >= w) {
      cout << mi + 1 << " " << mi + 1 << " ";
      m[mi] -= 2;
    }
    cout << ind + 1 << " ";
  }
  for (int i = 0; i < n; i++) {
    while (m[i] > 0) {
      m[i] -= 2;
      cout << i + 1 << " " << i + 1 << " ";
    }
  }
}
