#include <bits/stdc++.h>
using namespace std;
const int MAX = 2e5 + 123;
int stan[MAX][2];
long long res[MAX][2];
long long tab[MAX][2];
long long tabb[MAX];
int N;
long long DFS(int wie, int faza) {
  if (wie == 0 || wie == N + 1) return 0;
  if (wie == 1 || stan[wie][faza] == 1) return -1;
  if (stan[wie][faza] == 2) return res[wie][faza];
  stan[wie][faza] = 1;
  long long ress = DFS(tab[wie][faza], faza ^ 1);
  stan[wie][faza] = 2;
  return res[wie][faza] = ress + (ress >= 0 ? tabb[wie] : 0);
}
int main() {
  ios_base::sync_with_stdio(0);
  cin.tie(0);
  cout.tie(0);
  cin >> N;
  for (int i = 2; i <= N; ++i) {
    long long a;
    cin >> a;
    tabb[i] = a;
    tab[i][0] = min(i + a, N + 1LL);
    tab[i][1] = max(i - a, 0LL);
  }
  for (int i = 2; i <= N; ++i) {
    if (!stan[i][1]) DFS(i, 1);
  }
  for (int i = 1; i < N; ++i) {
    if (res[i + 1][1] == -1)
      cout << -1 << "\n";
    else
      cout << res[i + 1][1] + i << "\n";
  }
  return 0;
}
