#include <bits/stdc++.h>
using namespace std;
const long double PI = acos(-1);
const long double eps = 1e-9;
const long long inf = LLONG_MAX / 10;
void ECHO(string _s) { cout << _s; }
void ECHO(bool _s) {
  if (_s)
    cout << "true";
  else
    cout << "false";
}
void ECHO(char _s) { cout << _s; }
void ECHO(long unsigned _s) { cout << _s; }
void ECHO(int _s) { cout << _s; }
void ECHO(long long _s) {
  if (_s == inf)
    cout << "inf";
  else
    cout << _s;
}
void ECHO(double _s) { cout << _s; }
void ECHO(long double _s) { cout << _s; }
void ECHO(bitset<8> b) { cout << b; }
template <typename T>
void ECHO(set<T> _s) {
  for (auto el : _s) {
    ECHO(el);
    cout << "_";
  }
}
template <typename T1, typename T2>
void ECHO(map<T1, T2> _s) {
  for (auto el : _s) {
    ECHO(el);
    cout << "_";
  }
}
template <typename T1, typename T2>
void ECHO(pair<T1, T2> _s) {
  cout << "(";
  ECHO(_s.first);
  cout << ",";
  ECHO(_s.second);
  cout << ")";
}
template <typename T>
void ECHO(vector<T> v) {
  for (auto el : v) {
    ECHO(el);
    cout << "_";
  }
}
template <typename T, typename... Args>
void ECHO(string _s, T x, Args... args) {
  int _i, c = 0;
  for (_i = 0; _i < (int)_s.size(); _i++) {
    if (c == 0 && _s[_i] == ',') break;
    if (_s[_i] == '(') c++;
    if (_s[_i] == ')') c--;
  }
  cout << " (" << _s.substr(0, _i) << "): ";
  ECHO(x);
  while (_i < (int)_s.size() && (_s[_i] == ',' || _s[_i] == ' ')) _i++;
  ECHO(_s.substr(_i), args...);
}
int main() {
  ios::sync_with_stdio(false);
  cin.tie(nullptr);
  cout.tie(nullptr);
  long long i, n, sum = 0;
  cin >> n;
  vector<long long> v(n);
  for (i = 0; i < n; i++) cin >> v[i];
  long long des = v[0];
  for (i = 0; i < n; i++) v[i] -= des + i, sum += v[i];
  long long mod = sum % n;
  des += sum / n;
  ;
  for (i = 0; i < n; i++) {
    v[i] = des + i;
    if (i < mod) v[i]++;
    if (i) cout << " ";
    cout << v[i];
  }
  cout << "\n";
  return 0;
}
