#include <bits/stdc++.h>
struct player {
  int v, pos;
};
player arr[300100];
void qsort(int l, int r) {
  int x = l, y = r, m = arr[l + rand() % (r - l)].v;
  while (x <= y) {
    while (arr[x].v < m) x++;
    while (arr[y].v > m) y--;
    if (x <= y) {
      player tmp = arr[x];
      arr[x] = arr[y];
      arr[y] = tmp;
      x++;
      y--;
    }
  }
  if (x < r) qsort(x, r);
  if (l < y) qsort(l, y);
};
int output[300100];
int main() {
  int n;
  scanf("%d", &n);
  for (int i = 0; i < n; i++) {
    scanf("%d", &arr[i].v);
    arr[i].pos = i;
  }
  if (n > 1) qsort(0, n - 1);
  int l = 0, r = 0;
  int next = arr[0].v;
  while (l < n) {
    while (r < n && (l == r || arr[r].v == arr[r - 1].v)) {
      r++;
    }
    next = ((next) > (arr[l].v) ? (next) : (arr[l].v));
    while (l < r && (r == n || next < arr[r].v)) {
      output[arr[l].pos] = next;
      next++;
      l++;
    }
    r++;
  }
  for (int i = 0; i < n; i++) printf("%d ", output[i]);
}
