#include <bits/stdc++.h>
using namespace std;
template <typename T>
inline T abs(T t) {
  return t < 0 ? -t : t;
}
const long long modn = 1000000007;
inline long long mod(long long x) { return x % modn; }
int n;
int a[200009];
pair<int, long long> memo[200009][2];
int seen[200009][2];
const int ok = 0, imp = 1, a1 = 2;
pair<int, long long> solve(int i, bool on2) {
  if (i < 0 || i >= n) return pair<int, long long>(ok, 0);
  if (i == 0 && on2) return pair<int, long long>(imp, 0);
  if (i == 0) return pair<int, long long>(a1, 0);
  pair<int, long long> &r = memo[i][on2];
  if (seen[i][on2] == 2) return r;
  if (seen[i][on2] == 1) return r = pair<int, long long>(imp, 0);
  seen[i][on2] = 1;
  pair<int, long long> x = solve(i + a[i] * (on2 * 2 - 1), !on2);
  r = x;
  if (r.first != imp) r.second += a[i];
  seen[i][on2] = 2;
  return r;
}
int main() {
  int i;
  scanf("%d", &n);
  for (i = 1; i < n; i++) scanf("%d", &a[i]);
  for (i = 0; i < n - 1; i++) {
    pair<int, long long> y = solve(i + 1, false);
    y.second += i + 1;
    if (y.first == a1) y.second += i + 1;
    if (y.first == imp)
      puts("-1");
    else
      printf("%I64d\n", y.second);
  }
}
