#include <bits/stdc++.h>
using namespace std;
long long n, a[200005] = {0}, dp[2][200005] = {0};
long long dpf(int idx, int inc) {
  if (idx == 1) return -1;
  if (idx > n || idx < 2) return 0LL;
  long long &res = dp[inc][idx];
  if (res != 0) return res;
  res = -1LL;
  if (inc)
    res = dpf(idx + a[idx], inc ^ 1);
  else
    res = dpf(idx - a[idx], inc ^ 1);
  if (res == -1) return res;
  return res = res + a[idx];
}
int main(int argc, char **argv) {
  std::ios::sync_with_stdio(false);
  cin >> n;
  for (int i = 2; i <= n; i++) cin >> a[i];
  for (int i = 2; i <= n; i++) dpf(i, 0);
  for (int i = 1; i < n; i++) {
    if (dp[0][i + 1] == -1LL)
      cout << -1LL << endl;
    else
      cout << dp[0][i + 1] + i << endl;
  }
  return 0;
}
