#include <bits/stdc++.h>
using namespace std;
int n;
int a[200020];
long long ans[200020][2];
int vis[200020][2];
long long getans(int x, int op) {
  if (x == 1 || vis[x][op] == 1) return ans[x][op] = -1;
  if (ans[x][op] == -1) return -1;
  if (ans[x][op] > 0) return ans[x][op];
  int tmp;
  if (op == 1)
    tmp = x - a[x];
  else
    tmp = x + a[x];
  if (tmp > n || tmp <= 0) return ans[x][op] = (long long)a[x];
  vis[x][op] = 1;
  long long cur = getans(tmp, 1 - op);
  vis[x][op] = 2;
  if (cur == -1) return ans[x][op] = -1;
  return ans[x][op] = (long long)a[x] + cur;
}
int main() {
  scanf("%d", &n);
  for (int i = 2; i <= n; i++) scanf("%d", &a[i]);
  for (a[1] = 1; a[1] < n; a[1]++) {
    long long cur = getans(1 + a[1], 1);
    if (cur == -1)
      cout << -1 << endl;
    else
      cout << (long long)a[1] + cur << endl;
  }
  return 0;
}
