#include <bits/stdc++.h>
using namespace std;
struct s {
  int x;
  int v;
} st[110000];
int a[110000];
bool fuct(s a, s b) { return a.v < b.v; }
bool fuct1(s a, s b) { return a.x < b.x; }
int main() {
  int n, i;
  scanf("%d", &n);
  for (i = 0; i < n; i++) {
    scanf("%d", &st[i].v);
    st[i].x = i;
    a[st[i].v]++;
  }
  sort(st, st + n, fuct);
  int l = 0;
  for (i = 1; i <= n; i++) {
    if (a[i] == 0) {
      while (a[st[l].v] == 1 && st[l].v <= n) {
        l++;
      }
      st[l++].v = i;
      a[st[l].v]--;
    }
  }
  sort(st, st + n, fuct1);
  int t = 0;
  for (i = 0; i < n; i++) {
    if (t == 0) {
      printf("%d", st[i].v);
      t = 1;
    } else
      printf(" %d", st[i].v);
  }
  printf("\n");
}
