#include <stdio.h>
int main(){
    int a,b[100000]={},eda=2,ans=1;
  scanf("%d",&a);
  for(int i=0;i<=a;i++){
    scanf("%d",&b[i]);
  }
    
  if(a==0&&b[0]!=1) {
   printf("-1");
    return 0;
  }
  
  if(a!=0&&b[0]!=0) {
   printf("-1");
    return 0;
  }
  
  if(a==2&&b[1]==0){
    if (b[2]==0||b[2]==1){
    printf("%d",2+b[2]);
    return 0;
    }
    else{
   printf("-1");
    return 0;
    }
  }
  
  for(int i=1;i<a;i++){
    eda*=2;
    if(0<=b[i]<=eda/2){
      eda/=2;
     ans-=eda;
      eda/=2;
      ans+=eda+b[i];
      eda*=2;
    }
   else{eda-=2*b[i];
    if(eda<0) {
   printf("-1");
    return 0;
    }
    if(eda==0)
      eda++;
      ans+=eda;
       }
  }
    
  if(eda/2<=b[a]&&b[a]<=eda){
  ans+=b[a];
  }
  else{
   printf("-1");
    return 0;
  }
  printf("%d",ans);
  return 0;
}

