#include <bits/stdc++.h>
using namespace std;
struct data {
  int v;
  int no;
  int top;
} qun[49];
int ji[49];
int q[1009];
int cmp(data a, data b) {
  if (a.v == b.v) return a.no < b.no;
  return a.v > b.v;
}
int main() {
  int n, m;
  scanf("%d%d", &n, &m);
  int i, j;
  for (i = 0; i < m; i++) {
    scanf("%d", &qun[i].v);
    qun[i].no = i;
    qun[i].top = -1;
  }
  int add = 0;
  sort(&qun[0], &qun[m], cmp);
  qun[0].v--;
  qun[0].top = 0;
  q[add] = qun[0].no;
  add++;
  bool xia = 0;
  for (i = 1; i < n; i++) {
    bool su = 0;
    sort(&qun[0], &qun[m], cmp);
    if (i + 1 != n)
      for (j = 0; j < m; j++) {
        if (qun[j].no == q[0]) {
          if ((i - qun[j].top) != 1 && qun[j].v >= 1) {
            qun[j].v--;
            qun[j].top = i;
            q[add] = qun[j].no;
            add++;
            su = 1;
            break;
          }
        }
      }
    if (su == 0)
      for (j = 0; j < m; j++) {
        if (i + 1 == n && qun[j].no == q[0]) continue;
        if ((i - qun[j].top) != 1 && qun[j].v >= 1) {
          qun[j].v--;
          qun[j].top = i;
          q[add] = qun[j].no;
          add++;
          su = 1;
          break;
        }
      }
    if (su == 0) {
      printf("-1\n");
      xia = 1;
      return 0;
    }
  }
  for (i = 0; i < add; i++) {
    printf("%d ", q[i] + 1);
  }
  printf("\n");
  return 0;
}
