#include <bits/stdc++.h>
using namespace std;
struct node {
  int x;
  int i;
};
node a[300010];
int b[300010];
map<int, int> mp;
bool cmp(node p, node q) { return (p.x < q.x); }
int main() {
  int x, y, i, j, n, k;
  cin >> n;
  for (i = 0; i < n; i++) {
    cin >> a[i].x;
    mp[a[i].x]++;
    a[i].i = i;
  }
  sort(a, a + n, cmp);
  for (i = 0, j = 1; i < n; i++) {
    if (i == 0)
      b[a[i].i] = a[i].x;
    else if ((a[i].x == a[i - 1].x)) {
      j = max(j, a[i].x + 1);
      while (1) {
        if (j <= a[i].x || mp[j] > 0) {
          j++;
          continue;
        }
        break;
      }
      b[a[i].i] = j;
      mp[j]++;
    } else {
      b[a[i].i] = a[i].x;
    }
  }
  for (i = 0; i < n; i++) cout << b[i] << " ";
  return 0;
}
