#!/usr/bin/python2 # -*- coding: utf-8 -*- # † n = int(raw_input()) b = [int(raw_input()) for _ in xrange(n)] lo, hi = 1, 10**18 for i in xrange(n): if i & 1: lo, hi = max(lo - b[i], 1), hi - b[i] else: lo, hi = max(b[i] - hi, 1), b[i] - lo if lo > hi: print -1 exit(0) a = [None] * n + [lo] for i in reversed(xrange(n)): if i & 1: a[i] = b[i] + a[i+1] else: a[i] = b[i] - a[i+1] print n + 1 print '\n'.join(map(str, a))