#include <bits/stdc++.h>
using namespace std;
int a[200005];
int main() {
  int n, k, d, f;
  while (cin >> n >> k) {
    stack<int> s;
    d = 0;
    f = 1;
    for (int i = 0; i < k; i++) {
      cin >> a[i];
      if (f)
        if (s.empty())
          if (d > a[i])
            f = 0;
          else
            s.push(a[i]);
        else {
          while (!s.empty() && s.top() < a[i]) {
            if (d + 1 == s.top()) {
              d++;
              s.pop();
            } else {
              f = 0;
              break;
            }
          }
          s.push(a[i]);
        }
    }
    if (f) {
      while (!s.empty()) {
        for (int i = s.top() - 1; i > d; i--) a[k++] = i;
        d = s.top();
        s.pop();
      }
      for (int i = n; i > d; i--) a[k++] = i;
      for (int i = 0; i < n; i++) {
        if (i) cout << ' ';
        cout << a[i];
      }
      cout << endl;
    } else
      cout << -1 << endl;
  }
  return 0;
}
