#!/usr/bin/env python3 n = int(input()) b = [ int(input()) for _ in range(n) ] def f(a1): a = [ None ] * (n+1) a[0] = a1 for i in range(n): if (i+1 + 1) % 2 == 0: a[i+1] = - a[i] + b[i] else: a[i+1] = a[i] - b[i] return a lower = 1 upper = 10**18 a = f(0) for i in range(n+1): if ((i+1) // 2) % 2 == 0: lower = max(lower, 1 - a[i]) upper = min(upper, 10**18 - a[i]) else: lower = max(lower, a[i] - 10**18) upper = min(upper, a[i] - 1 ) if lower <= upper: print(n+1) for ai in f(lower): print(ai) else: print(-1)