#include <bits/stdc++.h>
using namespace std;
int ns[110];
int tmpns[110];
int mp[110];
bool cmp(int a, int b) { return a > b; }
int main() {
  int P, i, j, k, tot, n, W, tp, tmp, Z;
  bool bl;
  while (cin >> P >> W) {
    tot = 0;
    for (i = 0; i < P; i++) {
      cin >> ns[i];
      tmpns[i] = ns[i];
      tot += ns[i];
    }
    if (W == tot) {
      cout << "Yes\n";
      for (i = 0; i < P - 1; i++)
        for (j = 0; j < ns[i]; j++) cout << i + 1 << " " << i + 1 << " ";
      for (j = 0; j < ns[i] - 1; j++) cout << P << " " << P << " ";
      cout << P << " " << P << endl;
      continue;
    }
    if (W > tot || W <= 0) {
      cout << "No\n";
      continue;
    }
    if (P == 1) {
      cout << "No\n";
      continue;
    }
    bool used[110];
    for (i = 0; i < P; i++) used[i] = false;
    sort(ns, ns + P, cmp);
    for (i = 0; i < P; i++)
      for (j = 0; j < P; j++) {
        if (tmpns[j] == ns[i] && !used[j]) {
          used[j] = true;
          mp[i] = j + 1;
          j = P;
        }
      }
    if (W == 1) {
      for (i = 0; i < P; i++) {
        if (ns[i] == 1) {
          cout << "Yes\n";
          cout << mp[i];
          for (j = 0; j < P; j++) {
            if (j == i) continue;
            for (k = 0; k < ns[j]; k++) {
              cout << " " << mp[j] << " " << mp[j];
            }
          }
          cout << " " << mp[i] << endl;
          break;
        }
      }
      if (i == P) cout << "No\n";
      continue;
    }
    cout << "Yes\n";
    Z = tot - W;
    tmp = Z;
    for (i = 0; i < P; i++) {
      if (ns[i] == tmp) {
        tp = 1;
        break;
      } else if (ns[i] > tmp) {
        tp = 3;
        if (i) {
          tmp++;
          if (tmp == ns[i]) tp = 2;
        }
        break;
      }
      tmp -= ns[i];
    }
    if (i == 0) {
      cout << mp[1];
      for (j = 0; j < Z; j++) cout << " " << mp[0] << " " << mp[0];
      cout << " " << mp[1];
      ns[1]--;
      for (; j < ns[0]; j++) cout << " " << mp[0] << " " << mp[0];
      for (k = 1; k < P; k++)
        for (j = 0; j < ns[k]; j++) cout << " " << mp[k] << " " << mp[k];
      cout << endl;
    } else {
      if (tp == 1) {
        cout << mp[i + 1];
        for (k = 0; k <= i; k++)
          for (j = 0; j < ns[k]; j++) cout << " " << mp[k] << " " << mp[k];
        ns[k]--;
        cout << " " << mp[k];
        for (; k < P; k++)
          for (j = 0; j < ns[k]; j++) cout << " " << mp[k] << " " << mp[k];
        cout << endl;
      } else if (tp == 2) {
        cout << mp[0];
        for (j = 0; j < tmp; j++) cout << " " << mp[i] << " " << mp[i];
        cout << " " << mp[0] << " " << mp[i + 1];
        ns[0]--;
        for (k = 0; k < i; k++)
          for (j = 0; j < ns[k]; j++) cout << " " << mp[k] << " " << mp[k];
        ns[i + 1]--;
        cout << " " << mp[i + 1];
        for (k = i + 1; k < P; k++)
          for (j = 0; j < ns[k]; j++) cout << " " << mp[k] << " " << mp[k];
        cout << endl;
      } else {
        cout << mp[0];
        for (j = 0; j < tmp; j++) cout << " " << mp[i] << " " << mp[i];
        cout << " " << mp[0] << " " << mp[i];
        ns[0]--;
        ns[i] -= (tmp + 1);
        for (k = 0; k < i; k++)
          for (j = 0; j < ns[k]; j++) cout << " " << mp[k] << " " << mp[k];
        cout << " " << mp[k];
        for (k = i; k < P; k++)
          for (j = 0; j < ns[k]; j++) cout << " " << mp[k] << " " << mp[k];
        cout << endl;
      }
    }
  }
}
