#include <bits/stdc++.h>
using namespace std;
int fx[] = {0, 0, 1, -1, -1, 1, -1, 1};
int fy[] = {1, -1, 0, 0, -1, 1, 1, -1};
int ans[1005];
int arr[1005];
int main() {
  int n, m, d;
  scanf("%d%*c", &n), scanf("%d%*c", &m), scanf("%d%*c", &d);
  int x = n;
  for (int i = 1; i <= m; i++) {
    scanf("%d%*c", &arr[i]);
    arr[i] = arr[i] + arr[i - 1];
  }
  while (1) {
    if (m == 0) break;
    if (n - arr[m] >= d) {
      n = n - d + 1;
    } else {
      n = n - (n - arr[m]);
    }
    for (int i = arr[m] - arr[m - 1]; i > 0; i--) {
      ans[n--] = m;
    }
    m--;
  }
  if (n >= d) {
    printf("NO\n");
    return 0;
  }
  printf("YES\n");
  for (int i = 1; i <= x; i++) printf("%d ", ans[i]);
}
