#include <bits/stdc++.h>
using namespace std;
static const int maxn = 2e5 + 7;
long long n;
long long q[maxn];
long long p[maxn];
long long tarray[maxn];
void input() {
  scanf("%lld", &n);
  for (int i = 1; i < n; i++) scanf("%lld", &q[i]);
}
long long getsigma() {
  long long res = 0;
  for (int i = 1; i <= n; i++) res += i;
  return res;
}
long long calculate() {
  long long res = 0;
  for (int i = n - 1; i >= 1; i--) res += (n - i) * q[i];
  return res;
}
bool solve() {
  long long sigma = getsigma();
  long long tmp = calculate();
  if ((sigma - tmp) % n) return false;
  p[1] = (sigma - tmp) / n;
  for (int i = 1; i < n; i++) p[i + 1] = q[i] + p[i];
  for (int i = 1; i <= n; i++) tarray[i] = p[i];
  sort(tarray + 1, tarray + 1 + n);
  for (int i = 1; i <= n; i++)
    if (tarray[i] != i) return false;
  return true;
}
int main() {
  input();
  if (!solve())
    printf("-1\n");
  else {
    for (int i = 1; i <= n; i++) printf("%lld ", p[i]);
  }
  return 0;
}
