#include <bits/stdc++.h>
using namespace std;
long long arr[200100];
long long mem[3][200100];
bool marca[3][200100];
int n;
long long func(long long pos, int st) {
  if (pos <= 0 || pos > n) return 0;
  if (mem[st][pos]) return mem[st][pos];
  if (marca[st][pos]) {
    mem[st][pos] = -1;
    return -1;
  }
  marca[st][pos] = true;
  if (st == 1) {
    long long val = func(pos + arr[pos], 2);
    if (val == -1)
      mem[st][pos] = -1;
    else
      mem[st][pos] = val + arr[pos];
  } else {
    long long val = func(pos - arr[pos], 1);
    if (val == -1)
      mem[st][pos] = -1;
    else
      mem[st][pos] = val + arr[pos];
  }
  return mem[st][pos];
}
int main() {
  cin >> n;
  for (int i = 2; i <= n; i++) cin >> arr[i];
  memset(mem, 0, sizeof(mem));
  memset(marca, 0, sizeof(marca));
  mem[2][1] = 0;
  marca[1][1] = true;
  for (int i = 1; i < n; i++) {
    long long val = func(i + 1, 2);
    if (val == -1)
      cout << "-1" << endl;
    else
      cout << val + i << endl;
  }
}
