Farmer John has just given the cows a program to play with! The program contains two integer variables, *x* and *y*, and performs the following operations on a sequence *a*<sub class="lower-index">1</sub>, *a*<sub class="lower-index">2</sub>, ..., *a*<sub class="lower-index">*n*</sub> of positive integers:
 1.  Initially, *x* = 1 and *y* = 0. If, after any step, *x* ≤ 0 or *x* &gt; *n*, the program immediately terminates. 1.  The program increases both *x* and *y* by a value equal to *a*<sub class="lower-index">*x*</sub> simultaneously. 1.  The program now increases *y* by *a*<sub class="lower-index">*x*</sub> while decreasing *x* by *a*<sub class="lower-index">*x*</sub>. 1.  The program executes steps 2 and 3 (first step 2, then step 3) repeatedly until it terminates (it may never terminate). So, the sequence of executed steps may start with: step 2, step 3, step 2, step 3, step 2 and so on. 
The cows are not very good at arithmetic though, and they want to see how the program works. Please help them!

You are given the sequence *a*<sub class="lower-index">2</sub>, *a*<sub class="lower-index">3</sub>, ..., *a*<sub class="lower-index">*n*</sub>. Suppose for each *i* (1 ≤ *i* ≤ *n* - 1) we run the program on the sequence *i*, *a*<sub class="lower-index">2</sub>, *a*<sub class="lower-index">3</sub>, ..., *a*<sub class="lower-index">*n*</sub>. For each such run output the final value of *y* if the program terminates or -1 if it does not terminate.
The first line contains a single integer, *n* (2 ≤ *n* ≤ 2·10<sup class="upper-index">5</sup>). The next line contains *n* - 1 space separated integers, *a*<sub class="lower-index">2</sub>, *a*<sub class="lower-index">3</sub>, ..., *a*<sub class="lower-index">*n*</sub> (1 ≤ *a*<sub class="lower-index">*i*</sub> ≤ 10<sup class="upper-index">9</sup>).
import math
import time
dp=[[float('inf') for i in range(2)] for j in range(200001)]
arr=[0]*(200001)

def ans(i,val,n,step):

  if i>=n or i<0:
    return val 
  
  if dp[i][step]!=float('inf'):
    
    return val+dp[i][step] 
  
  dp[i][step]=-float('inf')

  new_idx=i-arr[i] if step else i+arr[i]
  val+=arr[i]
  val=ans(new_idx,val,n,step^1)
  dp[i][step]=val 
  return val 

def main():

  n=int(input())
  a=list(map(int,input().split()))
  for i in range(1,n):
    arr[i]=a[i-1]
  for i in range(len(dp)):
    for j in range(len(dp[0])):
      dp[i][j]=float('inf')
  dp[0][0]=-float('inf')
  r=[]
  for i in range(1,n):
    arr[0]=i
    ans(i,i,n,1)
    if dp[i][1]!=-float('inf'):
      r.append(dp[i][1])
    else:
      r.append(-1)
  return r 

r=main()

for e in r:
  print(e)





  
  

    

