#include <bits/stdc++.h>
using namespace std;
int const maxn = (int)2e5 + 111;
int const inf = (1 << 30) - 1;
int n, a[maxn];
long long d[maxn][2];
bool calced[maxn][2];
void dfs(int v, int turn) {
  if (calced[v][turn]) return;
  calced[v][turn] = true;
  int u = v;
  if (turn == 1)
    u -= a[v];
  else
    u += a[v];
  if (u < 0 || u >= n) {
    d[v][turn] = a[v];
    return;
  }
  dfs(u, turn ^ 1);
  if (d[u][turn ^ 1] == 0)
    d[v][turn] = 0;
  else
    d[v][turn] = d[u][turn ^ 1] + a[v];
}
int main() {
  cin >> n;
  for (int i = 1; i <= n - 1; i++) {
    cin >> a[i];
  }
  for (int i = 1; i <= n - 1; i++) {
    dfs(i, 1);
    if (d[i][1] == 0)
      cout << -1 << endl;
    else
      cout << d[i][1] + i << endl;
  }
  return 0;
}
