#include <bits/stdc++.h>
using namespace std;
const double eps = 1.0e-11;
const double pi = acos(-1.0);
const int N = 200200;
int a[N];
long long vals[2][N];
int n;
int u[2][N];
long long dfs(int x, int f) {
  if (x == 1) return -1;
  if (x <= 0 || x > n) return 0;
  if (u[f][x] == 1) return -1;
  if (u[f][x] == 2) return vals[f][x];
  u[f][x] = 1;
  int to = x + (f * 2 - 1) * a[x];
  long long ans = dfs(to, f ^ 1);
  if (ans == -1)
    vals[f][x] = -1;
  else
    vals[f][x] = ans + a[x];
  u[f][x] = 2;
  return vals[f][x];
}
int main() {
  scanf("%d", &n);
  for (long long i = 0; i < n - 1; i++) scanf("%d", a + i + 2);
  for (long long i = 1; i <= n - 1; i++) {
    long long ans = dfs(i + 1, 0);
    if (ans == -1)
      printf("-1\n");
    else
      cout << ans + i << endl;
  }
  return 0;
}
