#include <bits/stdc++.h>
using namespace std;
void read(long long a = 0) {
  freopen("in", "r", stdin);
  if (a) freopen("out", "w", stdout);
}
long long n;
long long a[3 * 100009] = {};
long long vis[3 * 100009][3] = {};
bool isrep[3 * 100009][3] = {};
bool rep(long long ind, long long dir) {
  if (ind >= n || ind < 0) return 0;
  if (vis[ind][dir] == 2) {
    return 1;
  } else if (!vis[ind][dir]) {
    vis[ind][dir] = 2;
    if (dir == 1)
      isrep[ind][dir] = rep(ind + a[ind], !dir);
    else
      isrep[ind][dir] = rep(ind - a[ind], !dir);
    vis[ind][dir] = 1;
  }
  return isrep[ind][dir];
}
long long dp[3 * 100009][3];
long long ans(long long ind, long long dir) {
  if (ind >= n || ind < 0) return 0;
  if (dp[ind][dir] == -1) {
    if (dir == 1)
      dp[ind][dir] = a[ind] + ans(ind + a[ind], !dir);
    else
      dp[ind][dir] = a[ind] + ans(ind - a[ind], !dir);
  }
  return dp[ind][dir];
}
int main() {
  ios::sync_with_stdio(0), cin.tie(0), cout.tie(0);
  cin >> n;
  for (int i = 1; i < n; i++) cin >> a[i];
  memset(dp, -1, sizeof(dp));
  for (int i = 1; i < n; i++) {
    if (rep(i, 0)) {
      cout << -1;
    } else {
      cout << i + ans(i, 0);
    }
    cout << "\n";
  }
}
