#include<stdio.h>
#define K 5000000000000000000

void prans(long long x,long long y[],long long z){
	long long i;
	printf("%lld\n",x);
	for(i = 1;i <= x;i++){
		if(i%4 < 2){
			printf("%lld\n",y[i]+z);
		}
		else{
			printf("%lld\n",y[i]-z);
		}
	}
}

int main(void){
	long long n,s,i,a[131072],pmin=1,mmin=K,t;
	scanf("%lld",&n);
	a[1] = 1;
	for(i = 1;i <= n;i++){
		scanf("%lld",&s);
		if(i%2){a[i+1] = s - a[i];}else{a[i+1] = a[i] - s;}
		if((i+1)%4 < 2){if(a[i+1] < pmin){pmin = a[i+1];}}else{if(a[i+1] < mmin){mmin = a[i+1];}}
	}
	if(mmin < 1){printf("-1\n");return 0;}
	if(mmin-1 < 1-pmin){printf("-1\n");return 0;}
	prans(n+1,a,1-pmin);
	return 0;
}