#include <bits/stdc++.h>
using namespace std;
int res[1010];
bool cmp(pair<int, int> a, pair<int, int> b) {
  return (a.first == res[0] and a.second != 0) or (a.second >= b.second);
}
int msort(pair<int, int> arr[], int n) {
  int i, j;
  pair<int, int> t;
  for (i = 0; i < n - 1; i++)
    for (j = i + 1; j < n; j++)
      if (not cmp(arr[i], arr[j])) {
        t = arr[i];
        arr[i] = arr[j];
        arr[j] = t;
      }
  return 0;
}
int main() {
  int n, m;
  pair<int, int> gal[50];
  int i, j, k;
  scanf("%d %d", &n, &m);
  for (i = 0; i < n; i++) res[i] = -1;
  for (i = 0; i < m; i++) {
    scanf("%d", &j);
    gal[i] = pair<int, int>(i + 1, j);
  }
  sort(gal, gal + m);
  res[0] = gal[0].first;
  gal[0].second--;
  for (i = 1; i < n - 1; i++) {
    msort(gal, m);
    if (gal[0].second == 0) {
      printf("-1\n");
      return 0;
    }
    if (gal[0].first != res[i - 1]) {
      j = 0;
    } else {
      if (m == 1 or gal[1].second == 0) {
        printf("-1\n");
        return 0;
      } else
        j = 1;
    }
    res[i] = gal[j].first;
    gal[j].second--;
  }
  msort(gal, m);
  for (i = 0; i < m and gal[i].second; i++) {
    if (gal[i].first != res[n - 2] and gal[i].first != res[0]) {
      res[n - 1] = gal[i].first;
      break;
    }
  }
  if (i == m or !gal[i].second)
    printf("-1");
  else
    for (i = 0; i < n; i++) printf("%d ", res[i]);
  printf("\n");
  return 0;
}
