#include <bits/stdc++.h>
using namespace std;
int n;
int a[100005];
int vis[100005];
int main() {
  while (~scanf("%d", &n)) {
    memset(vis, 0, sizeof(vis));
    queue<int> q;
    for (int i = 1; i <= n; i++) {
      scanf("%d", &a[i]);
      if (!vis[a[i]] && a[i] <= n)
        vis[a[i]] = 1;
      else
        q.push(i);
    }
    int tmp;
    for (int i = 1; i <= n; i++) {
      if (!vis[i]) {
        tmp = q.front();
        q.pop();
        a[tmp] = i;
      }
    }
    for (int i = 1; i < n; i++) printf("%d ", a[i]);
    printf("%d\n", a[n]);
  }
  return 0;
}
