#include <bits/stdc++.h>
using namespace std;
const int maxn = 200013;
int n, i, l, a[maxn], h[maxn][2];
bool s[maxn][2];
long long sum[maxn][2];
void Search(int u, bool st) {
  if (h[u][st] >= i) {
    sum[u][st] = -1;
    return;
  } else {
    h[u][st] = i;
  }
  int v = u;
  if (st)
    v -= a[u];
  else
    v += a[u];
  if (v <= 0 || v > n) {
    if (u > 1) sum[u][st] = a[u];
    return;
  }
  if (!sum[v][!st]) Search(v, !st);
  if (sum[v][!st] >= 0) {
    if (u > 1) sum[u][st] = a[u];
    sum[u][st] += sum[v][!st];
    s[u][st] = s[u][st] || s[v][!st];
  } else
    sum[u][st] = -1;
}
int main() {
  scanf("%d", &n);
  s[1][1] = 1;
  h[1][0] = n;
  sum[1][0] = -1;
  for (i = 2; i <= n; i++) scanf("%d", &a[i]);
  for (i = 2; i <= n; i++) {
    a[1] = i - 1;
    if (!sum[i][1]) Search(i, 1);
    if (sum[i][1] >= 0) {
      if (s[i][1])
        printf("%I64d\n", sum[i][1] + a[1] * 2);
      else
        printf("%I64d\n", sum[i][1] + a[1]);
    } else {
      printf("-1\n");
    }
  }
  return 0;
}
