#include <bits/stdc++.h>
using namespace std;
const int inf = 1e6;
int main() {
  int n;
  cin >> n;
  vector<int> a(n, 0), b(n, inf);
  for (auto& i : a) cin >> i;
  vector<int> cnt(1e5 + 7, 0);
  for (int i = 0; i < n; ++i) {
    auto id = upper_bound(a.begin(), a.end(), a[i]);
    if (id != a.end()) b[id - a.begin()] = a[i], cnt[a[i]] = 1;
  }
  if (a[0] == 1) b[0] = 0, cnt[0] = 1;
  queue<int> que;
  for (int i = 0; i < n; ++i)
    if (b[i] == inf) que.push(i);
  int j = 0;
  while (j < a.back()) {
    if (cnt[j] == 0) {
      b[que.front()] = j;
      que.pop();
      cnt[j] = 1;
    }
    j++;
  }
  for (auto i : b) cout << i << ' ';
  cout << '\n';
  return 0;
}
