p=print n=int(input()) b=[int(input())for _ in[0]*n] i=m=-1 a=[1]*-~n print(a) while i<~-n: i+=1;a[i+1]=[b[i]-a[i],a[i]-b[i]][i%2] if 0>=a[i+1]or a[i+1]>10**18:a[0]+=-a[i+1]+1;i=-1;m+=1 if m==10:break if 0>=a[0]or m==10:p(-1);exit() p(n+1) for _ in a:p(_)