#include <bits/stdc++.h>
using namespace std;
void RD(int &x) { scanf("%d", &x); }
void RD(long long &x) { scanf("%I64d", &x); }
void RD(unsigned int &x) { scanf("%u", &x); }
void RD(double &x) { scanf("%lf", &x); }
void RD(int &x, int &y) { scanf("d", &x, &y); }
void RD(long long &x, long long &y) { scanf("I64d", &x, &y); }
void RD(unsigned int &x, unsigned int &y) { scanf("u", &x, &y); }
void RD(double &x, double &y) { scanf("lf", &x, &y); }
void RD(int &x, int &y, int &z) { scanf("d%d", &x, &y, &z); }
void RD(long long &x, long long &y, long long &z) {
  scanf("I64d%I64d", &x, &y, &z);
}
void RD(unsigned int &x, unsigned int &y, unsigned int &z) {
  scanf("u%u", &x, &y, &z);
}
void RD(double &x, double &y, double &z) { scanf("lf%lf", &x, &y, &z); }
void RD(char &x) { x = getchar(); }
void RD(char *s) { scanf("%s", s); }
void RD(string &s) { cin >> s; }
void PR(int x) { printf("%d\n", x); }
void PR(long long x) { printf("%I64d\n", x); }
void PR(unsigned int x) { printf("%u\n", x); }
void PR(double x) { printf("%.6lf\n", x); }
void PR(char x) { printf("%c\n", x); }
void PR(char *x) { printf("%s\n", x); }
void PR(string x) { cout << x << endl; }
int n;
int a[200005];
long long dp[200005][2];
bool vis[200005][2];
long long dfs(int x, int sec) {
  if (x <= 0 || x > n) return 0;
  if (x == 1) return -1;
  if (vis[x][sec]) return dp[x][sec];
  vis[x][sec] = 1;
  long long ans = a[x];
  int y;
  if (sec == 0)
    y = x + a[x];
  else
    y = x - a[x];
  long long t = dfs(y, 1 - sec);
  if (t == -1)
    ans = -1;
  else
    ans = ans + t;
  dp[x][sec] = ans;
  return ans;
}
int main() {
  while (scanf("%d", &n) != EOF) {
    memset(dp, -1, sizeof(dp));
    memset(vis, 0, sizeof(vis));
    for (int i = 1; i <= n - 1; i++) RD(a[i + 1]);
    for (int i = 2; i <= n; i++) {
      if (!vis[i][0]) {
        dfs(i, 0);
      }
      if (!vis[i][1]) {
        dfs(i, 1);
      }
    }
    for (int i = 1; i <= n - 1; i++) {
      if (dp[i + 1][1] == -1) {
        PR(-1);
      } else {
        PR(dp[i + 1][1] + i);
      }
    }
  }
  return 0;
}
