#include <bits/stdc++.h>
using namespace std;
int n, W, sum = 0;
pair<int, int> a[100];
vector<int> res;
void add(int i) {
  a[i].first--;
  res.push_back(i);
  res.push_back(i);
}
int main() {
  scanf("%d%d", &n, &W);
  for (int i = 0; i < n; i++) {
    scanf("%d", &a[i].first);
    a[i].second = i;
    sum += a[i].first;
  }
  sort(a, a + n);
  if (W > sum || (a[0].first == 1 && W <= 0) || (a[0].first != 1 && W <= 1) ||
      (n == 1 && a[0].first != W)) {
    puts("No");
    return 0;
  }
  if (n == 1) {
    res = vector<int>(2 * a[0].first, 0);
  } else if (W == 1) {
    res.push_back(0);
    for (int i = 1; i < n; i++) {
      for (int j = 0; j < a[i].first; j++) {
        res.push_back(i);
        res.push_back(i);
      }
    }
    res.push_back(0);
  } else {
    for (; W > 2; W--) {
      if (n > 2) {
        add(n - 1);
        if (a[n - 1].first == 0) {
          n--;
        }
      } else {
        if (a[0].first > a[1].first) {
          add(0);
        } else {
          add(1);
        }
      }
    }
    a[0].first--;
    a[1].first--;
    res.push_back(0);
    for (int i = 1; i < n; i++) {
      for (int j = 0; j < a[i].first; j++) {
        res.push_back(i);
        res.push_back(i);
      }
    }
    res.push_back(0);
    res.push_back(1);
    for (int i = 0; i < a[0].first; i++) {
      res.push_back(0);
      res.push_back(0);
    }
    res.push_back(1);
  }
  puts("Yes");
  for (size_t i = 0; i < res.size(); i++) {
    (i != 0) && (printf(" "));
    printf("%d", a[res[i]].second + 1);
  }
  putchar('\n');
  return 0;
}
