#include <bits/stdc++.h>
using namespace std;
const long long int mx = 2e5 + 1, Mod = 1e9 + 7;
int n, k;
stack<int> mid;
int a[mx], ans[mx];
int main() {
  ios_base::sync_with_stdio(false), cin.tie(0), cout.tie(0);
  cin >> n >> k;
  int OK = 1;
  for (int i = 0; i < k; i++) {
    cin >> a[i];
    if (!mid.empty() && mid.top() < a[i]) return cout << -1, 0;
    mid.push(a[i]);
    while (!mid.empty() && mid.top() == OK) {
      mid.pop();
      OK++;
    }
  }
  for (int i = 0; i + k < n; i++) {
    if (mid.empty()) {
      ans[i] = n;
      mid.push(n);
    } else {
      ans[i] = mid.top() - 1;
      mid.push(mid.top() - 1);
    }
    while (!mid.empty() && mid.top() == OK) {
      mid.pop();
      OK++;
    }
  }
  for (int i = 0; i < n; i++) cout << (i < k ? a[i] : ans[i - k]) << ' ';
  return 0;
}
