#include <bits/stdc++.h>
using namespace std;
int n, stt;
int a[200010] = {0};
int lan[2][200010];
long long nho[2][200010];
long long dfs(int diem, int dir) {
  if (diem <= 0 || diem > n) return 0;
  if (lan[dir][diem] == stt) return -1;
  lan[dir][diem] = stt;
  if (nho[dir][diem]) return nho[dir][diem];
  long long tong = dfs(diem + a[diem] * (dir ? -1 : 1), !dir);
  return nho[dir][diem] = tong == -1 ? -1 : tong + a[diem];
}
int main() {
  scanf("%d", &n);
  for (int i = 2; i <= n; i++) scanf("%d", &a[i]);
  for (int i = 1; i <= n - 1; i++) {
    lan[1][1] = stt = i;
    long long tong = dfs(1 + i, 1);
    printf("%I64d\n", tong == -1 ? -1 : tong + i);
  }
  return 0;
}
