#include <bits/stdc++.h>
using namespace std;
const double pi = 3.141592653589793238;
const long long int inf = (long long int)10e16;
long long int dp[400009][2];
int q1[200009], n;
long long int dfs(int p, int q) {
  if (p < 1 || p > n) return 0;
  if (dp[p][q] != 0) return dp[p][q];
  dp[p][q] = -1;
  if (q == 0) {
    long long int temp1 = dfs(p + q1[p], 1);
    if (temp1 == -1)
      dp[p][q] = -1;
    else
      dp[p][0] = q1[p] + temp1;
  }
  if (q == 1) {
    long long int temp2 = dfs(p - q1[p], 0);
    if (temp2 == -1)
      dp[p][q] = -1;
    else
      dp[p][1] = q1[p] + temp2;
  }
  return dp[p][q];
}
int main() {
  ios ::sync_with_stdio(false);
  cin.tie(0);
  cout.tie(0);
  memset(dp, 0, sizeof(dp));
  long long int temp;
  cin >> n;
  for (int i = 2; i <= n; i += 1) cin >> q1[i];
  q1[1] = 0;
  for (int i = 2; i <= n; i += 1) {
    dfs(i, 0);
    dfs(i, 1);
  }
  for (int i = 1; i <= n - 1; i += 1) {
    if (dp[1 + i][1] == -1)
      cout << -1 << endl;
    else
      cout << dp[1 + i][1] + i << endl;
  }
  cerr << "Time elapsed: " << 1.0 * clock() / CLOCKS_PER_SEC << " s.\n";
}
