#include <bits/stdc++.h>
using namespace std;
int vis[1000006];
int main() {
  ios::sync_with_stdio(false);
  int n;
  cin >> n;
  vector<int> vec, ans;
  for (int i = 0; i < n; i++) {
    int x;
    cin >> x;
    vec.push_back(x);
    vis[x]++;
  }
  set<int> se;
  for (int i = 0; i <= 5 * n; i++) {
    se.insert(i);
  }
  for (auto x : vec) se.erase(x);
  for (int i = 0; i < n; i++) {
    if (vec[i] > i + 1) {
      return cout << -1 << "\n", 0;
    }
  }
  for (int i = 0; i < n; i++) {
    cout << *se.begin() << " ";
    se.erase(se.begin());
    vis[vec[i]]--;
    if (vis[vec[i]] == 0) {
      se.insert(vec[i]);
    }
  }
  return 0;
}
