#include <bits/stdc++.h>
int main() {
  int n, m, a[1010], x[1010];
  scanf("%d %d", &n, &m);
  for (int i = 1; i <= m; i++) scanf("%d", &a[i]);
  for (int i = m + 1; i <= 2 * m; i++) a[i] = a[i - m];
  bool flag = true;
  int danhso = 0, max, vitri;
  for (int i = 1; i <= n; i++) {
    max = 0;
    vitri = 0;
    if (i == 1)
      for (int j = 1; j <= m; j++) {
        if (a[j] > max && j != danhso && i != n) {
          max = a[j];
          vitri = j;
        }
        if (i == n && a[j] > max && j != danhso && j != x[1]) {
          max = a[j];
          vitri = j;
        }
      }
    else
      for (int j = x[1]; j <= m + x[1] - 1; j++) {
        if (a[j] > max && j != danhso && i != n) {
          max = a[j];
          vitri = j;
        }
        if (i == n && a[j] > max && j != danhso && j != x[1]) {
          max = a[j];
          vitri = j;
        }
      }
    if (vitri == 0) {
      flag = false;
      break;
    } else {
      danhso = vitri;
      a[vitri]--;
      x[i] = danhso;
    }
  }
  if (flag) {
    for (int i = 1; i <= n; i++) printf("%d ", (x[i] - 1) % m + 1);
  } else
    printf("-1");
}
