#include <bits/stdc++.h>
using namespace std;
const long long inf = 1e18 + 1;
const int N = 2e5 + 1;
const long long mod = 1e9 + 7;
const int bits = 19;
long long dp[N][2], instack[N][2];
long long arr[N];
long long solve(long long x, long long k, long long n) {
  if (dp[x][k] != -1) {
    return dp[x][k];
  }
  instack[x][k] = 1;
  dp[x][k] = arr[x];
  int nx;
  if (k) {
    nx = x + arr[x];
  } else {
    nx = x - arr[x];
  }
  if (nx > 0 && nx <= n) {
    if (instack[nx][!k]) {
      dp[x][k] = inf;
    } else {
      long long val = solve(nx, !k, n);
      if (val == inf) {
        dp[x][k] = inf;
      } else {
        dp[x][k] += val;
      }
    }
  }
  instack[x][k] = 0;
  return dp[x][k];
}
void solve() {
  int n;
  cin >> n;
  for (int i = 2; i <= n; i++) {
    cin >> arr[i];
    dp[i][0] = dp[i][1] = -1;
  }
  for (int i = 1; i <= n - 1; i++) {
    dp[1][1] = inf;
    long long ans = solve(i + 1, 0, n);
    if (ans == inf) {
      cout << -1 << "\n";
    } else {
      cout << i + ans << "\n";
    }
  }
}
int main() {
  ios_base::sync_with_stdio(false);
  cin.tie(NULL);
  cout.tie(NULL);
  ;
  std::cout << std::fixed << std::setprecision(20);
  ;
  int t = 1;
  while (t--) {
    solve();
  }
}
