#include <bits/stdc++.h>
using namespace std;
long long dbg = 0, n, a[200005], dp[2][200005], arr[2][200005], vi[2][200005];
void func(long long cu, long long mode) {
  if (dbg) cout << cu << " " << mode << endl;
  if (arr[mode][cu]) return;
  if (vi[mode][cu]) {
    dp[mode][cu] = -1;
    return;
  }
  vi[mode][cu] = 1;
  if (dbg) cout << cu << " " << mode << endl;
  if (mode == 1) {
    if (cu + a[cu] > n) {
      dp[mode][cu] = a[cu];
      arr[mode][cu] = 1;
      return;
    }
    func(cu + a[cu], 1 - mode);
    if (dp[1 - mode][cu + a[cu]] == -1) {
      dp[mode][cu] = -1;
      arr[mode][cu] = 1;
      return;
    }
    dp[mode][cu] = dp[1 - mode][cu + a[cu]] + a[cu];
    arr[mode][cu] = 1;
    return;
  }
  if (cu - a[cu] == 1) {
    dp[mode][cu] = -1;
    arr[mode][cu] = 1;
    return;
  }
  if (cu - a[cu] < 1) {
    dp[mode][cu] = a[cu];
    arr[mode][cu] = 1;
    return;
  }
  func(cu - a[cu], 1 - mode);
  if (dp[1 - mode][cu - a[cu]] == -1) {
    dp[mode][cu] = -1;
    arr[mode][cu] = 1;
    return;
  }
  dp[mode][cu] = dp[1 - mode][cu - a[cu]] + a[cu];
  arr[mode][cu] = 1;
  return;
}
int main() {
  cin >> n;
  for (long long i = 2; i <= n; i++) cin >> a[i];
  for (long long i = 2; i < n + 1; i++) {
    func(i, 1);
    func(i, 0);
  }
  if (dbg)
    for (long long i = 2; i <= n; i++)
      cout << i << " " << dp[0][i] << " " << dp[1][i] << endl;
  for (long long i = 1; i <= n - 1; i++)
    if (dp[0][i + 1] == -1)
      cout << "-1" << endl;
    else
      cout << dp[0][i + 1] + i << endl;
  return 0;
}
