#include <bits/stdc++.h>
using namespace std;
int n, k, x, id = 1, sz;
stack<int> s;
map<int, int> m;
vector<int> res;
int main() {
  ios::sync_with_stdio(0), cin.tie(0), cout.tie(0);
  cin >> n >> k;
  for (int i = 1; i <= k; i++) {
    cin >> x;
    s.push(x);
    res.push_back(x);
    m[x] = 1;
    while (!s.empty() && s.top() == id) m[id++] = 0, s.pop();
    if (!s.empty() && s.top() > id && m[id]) {
      cout << -1;
      return 0;
    }
  }
  while (!s.empty()) {
    for (int i = s.top() - 1; i >= id; i--)
      if (!m[i])
        res.push_back(i);
      else {
        cout << -1;
        return 0;
      }
    id = s.top() + 1;
    s.pop();
  }
  for (int i = n; i >= id; i--) res.push_back(i);
  sz = res.size();
  for (int i = 0; i < sz; i++) cout << res[i] << " ";
}
