#include <bits/stdc++.h>
using namespace std;
int n;
long long a[((int(2e5 + 10)))];
long long dp[2][((int(2e5 + 10)))];
int dd[2] = {+1, -1};
long long dfs(int cs, int x) {
  long long ret;
  if (x > n || x <= 0) {
    return 0LL;
  }
  if (dp[cs][x] == -3LL) {
    dp[cs][x] = -2LL;
    ret = dfs(cs ^ 1, x + a[x] * dd[cs]);
    dp[cs][x] = ret + a[x];
    if (ret == -1LL) {
      dp[cs][x] = -1LL;
    }
  }
  if (dp[cs][x] == -2LL) {
    dp[cs][x] = -1LL;
  }
  return dp[cs][x];
}
int main(int argc, char *argv[]) {
  int x;
  cin >> n;
  for (int i = 2; i < n + 1; i += 1) {
    cin >> a[i];
  }
  for (int i = 0; i < 2; i += 1) {
    for (int j = 1; j < n + 1; j += 1) {
      dp[i][j] = -3LL;
    }
  }
  dp[0][1] = -1LL;
  dp[1][1] = -1LL;
  for (int i = 2; i < n + 1; i += 1) {
    dfs(0, i);
    dfs(1, i);
  }
  for (int i = 1; i < n; i += 1) {
    x = 1 + i;
    if (dp[1][x] == -1LL) {
      cout << -1LL << endl;
    } else {
      cout << i + dp[1][x] << endl;
    }
  }
  return 0;
}
