#include <bits/stdc++.h>
using namespace std;
long long numm = 500000000;
signed main() {
  ios_base::sync_with_stdio(false);
  cin.tie(NULL);
  long long n, k;
  cin >> n >> k;
  long long sm = 1;
  vector<long long> ans;
  stack<long long> st;
  for (long long i = 1; i <= k; i++) {
    numm--;
    if (numm < 0) return 0;
    long long z;
    cin >> z;
    ans.push_back(z);
    if (z == sm) {
      sm++;
    } else {
      if (!st.size())
        st.push(z);
      else {
        long long tp = st.top();
        if (z > tp) {
          cout << -1 << endl;
          return 0;
        } else {
          st.push(z);
        }
      }
    }
    while (st.size()) {
      if (st.top() == sm) {
        sm++;
        st.pop();
      } else
        break;
    }
  }
  long long mx = n;
  long long req = n - k;
  while (true) {
    numm--;
    if (numm < 0) return 0;
    if (req <= 0) break;
    if (!st.size()) {
      while (req--) {
        ans.push_back(mx--);
      }
      break;
    } else {
      long long tp = st.top();
      if (tp == sm) {
        sm++;
        st.pop();
      } else {
        st.push(tp - 1);
        ans.push_back(tp - 1);
        req--;
      }
    }
  }
  for (auto x : ans) cout << x << ' ';
  cout << endl;
}
