#include <bits/stdc++.h>
using namespace std;
struct rek {
  int a, nr;
  rek(int _nr = 0, int _a = 0) : a(_a), nr(_nr) {}
  bool operator<(const rek& x) const {
    return a < x.a || (a == x.a && nr < x.nr);
  }
} t[300000];
int res[300000];
int main() {
  int n;
  scanf("%d", &n);
  for (int i = 0; i < n; i++) {
    int a;
    scanf("%d", &a);
    t[i] = rek(i, a);
  }
  sort(t, t + n);
  int next = t[0].a;
  int prev = t[0].a;
  res[t[0].nr] = next++;
  for (int i = 1; i < n; i++) {
    if (t[i].a == prev) {
      res[t[i].nr] = next++;
    } else {
      next = max(next, t[i].a);
      res[t[i].nr] = next++;
      prev = t[i].a;
    }
  }
  for (int i = 0; i < n; i++) printf("%d ", res[i]);
  printf("\n");
}
