#include <bits/stdc++.h>
using namespace std;
struct node {
  int num, node_id;
  friend bool operator<(const node& n1, const node& n2);
};
bool operator<(const node& n1, const node& n2) {
  if (n1.num < n2.num)
    return true;
  else
    return false;
}
int n, m;
int ans[1005];
priority_queue<node> que;
int getpre(int x) {
  if (x == 0)
    return n - 1;
  else
    return x - 1;
}
int getnext(int x) {
  if (x == n - 1)
    return 0;
  else
    return x + 1;
}
bool check() {
  for (int i = 0; i < n; i++) {
    if (ans[i] == ans[getpre(i)]) return false;
    if (ans[i] == ans[getnext(i)]) return false;
  }
  return true;
}
bool try_swap() {
  int i;
  for (i = 0; i < n - 1; i++) {
    swap(ans[n - 1], ans[i]);
    if (check()) return true;
    swap(ans[n - 1], ans[i]);
  }
  return false;
}
int main() {
  int i, j, k;
  cin >> n >> m;
  node now, next;
  for (i = 0; i < m; i++) {
    cin >> now.num;
    now.node_id = i + 1;
    que.push(now);
  }
  if (m == 1 && n == 1) {
    cout << 1 << endl;
    return 0;
  } else if (m == 1 && n != 1) {
    cout << -1 << endl;
    return 0;
  }
  bool error_flag = false;
  for (i = 0; i < n; i++) {
    if (que.empty()) {
      error_flag = true;
      break;
    }
    now = que.top();
    que.pop();
    if (i == 0 || ans[i - 1] != now.node_id) {
      ans[i] = now.node_id;
      now.num--;
      if (now.num != 0) que.push(now);
    } else {
      if (que.empty()) {
        error_flag = true;
        break;
      }
      next = que.top();
      que.pop();
      ans[i] = next.node_id;
      next.num--;
      if (next.num != 0) que.push(next);
      que.push(now);
    }
  }
  if (error_flag) {
    cout << "-1" << endl;
    return 0;
  }
  if (ans[n - 1] == ans[0]) {
    bool f = true;
    while (ans[0] == que.top().node_id || ans[n - 2] == que.top().node_id) {
      if (que.empty()) {
        f = false;
        break;
      }
      que.pop();
    }
    if (f) {
      ans[n - 1] = que.top().node_id;
    } else {
      error_flag = (!try_swap());
    }
  }
  if (error_flag)
    cout << -1 << endl;
  else {
    for (i = 0; i < n; i++) cout << ans[i] << " ";
    cout << endl;
  }
  return 0;
}
