description: Petya has got an interesting flower. Petya is a busy person, so he sometimes forgets to water it. You are given n days from Petya's live and you have to determine what happened with his flower in the end.
  
  The flower grows as follows: 
  
    * If the flower isn't watered for two days in a row, it dies. 
    * If the flower is watered in the i-th day, it grows by 1 centimeter. 
    * If the flower is watered in the i-th and in the (i-1)-th day (i > 1), then it grows by 5 centimeters instead of 1. 
    * If the flower is not watered in the i-th day, it does not grow. 
  
  
  
  At the beginning of the 1-st day the flower is 1 centimeter tall. What is its height after n days?
  
  Input
  
  Each test contains multiple test cases. The first line contains the number of test cases t (1 ≤ t ≤ 100). Description of the test cases follows.
  
  The first line of each test case contains the only integer n (1 ≤ n ≤ 100).
  
  The second line of each test case contains n integers a_1, a_2, ..., a_n (a_i = 0 or a_i = 1). If a_i = 1, the flower is watered in the i-th day, otherwise it is not watered.
  
  Output
  
  For each test case print a single integer k — the flower's height after n days, or -1, if the flower dies.
  
  Example
  
  Input
  
  
  4
  3
  1 0 1
  3
  0 1 1
  4
  1 0 0 1
  1
  0
  
  
  Output
  
  
  3
  7
  -1
  1
solution: 
  	import java.util.*;
  	import java.io.*;
  	public class codeforceb 
  	{
  		
  		//ArrayList<Integer> arr2=new ArrayList<Integer>();
  		//ArrayList<Integer> arr1=new ArrayList<Integer>();
  	    //Map<Integer,Integer> hm=new HashMap<Integer,Integer>();
  		//Set<Integer> st1=new HashSet<Integer>();
  		static Set<Integer> prime=new HashSet<Integer>();
  		static int inf = Integer.MAX_VALUE ;
  		static long infL = Long.MAX_VALUE ;
  		static int mod=1000000007;
  		static FastReader sc=new FastReader();
  		static PrintWriter out=new PrintWriter(System.out);
  		// seive to find prime for a given range except 1;
  		public static void main (String[] args) 
  	    {
  			 /*Arrays.sort(time,new Comparator<Pair>(){
  	 			public int compare(Pair p1,Pair p2){
  	 				if(p1.a==p2.a)
  	 					return p1.b-p2.b;
  	 				return p1.a-p2.a;
  	 			}
  	 		});*/
  	        
  	        //int r[][]= {{-1,-1},{-1,0},{-1,1},{0,-1},{0,1},{1,-1},{1,0},{1,1}
  	        	//			};
  			
  			
  			
  			int t=sc.nextInt();
  			//seive(1000000);
  	        while(t-->0) 
  	        {
  	        	solve();
  	        }
  	       
  	        out.close();
  	    }
  		public static void solve() {
  			int n=sc.nextInt();
  			int arr[]=sc.readArray(n);
  			
  			int sum=1;
  			
  			for(int i=0;i<n;i++) {
  				if(i==0) {
  					if(arr[i]==1) sum++;
  				}
  				else {
  					if(arr[i]==1 ) {
  						if(arr[i-1]==1) sum+=5;
  						else sum++;
  					}
  					else{
  						if(arr[i-1]==0) {
  							sum=-1;
  							break;
  						}
  						
  					}
  				}
  			}
  			out.println(sum);
  		}
  		public static boolean check(long gcd,long arr[],int i) {
  			for(;i<arr.length;i+=2) {
  				if(arr[i]%gcd==0) return false;
  			}
  			return true;
  		}
  		
  	    static class FastReader 
  	    { 
  	        BufferedReader br; 
  	        StringTokenizer st; 
  	  
  	        public FastReader() 
  	        { 
  	            br = new BufferedReader(new
  	                     InputStreamReader(System.in)); 
  	        } 
  	        int[] readArray(int n) {
  				int[] a=new int[n];
  				for (int i=0; i<n; i++) a[i]=nextInt();
  				return a;
  			}
  	        long[] readLong(int n) {
  				long[] a=new long[n];
  				for (int i=0; i<n; i++) a[i]=nextLong();
  				return a;
  			}
  	        String next() 
  	        { 
  	            while (st == null || !st.hasMoreElements()) 
  	            { 
  	                try
  	                { 
  	                    st = new StringTokenizer(br.readLine()); 
  	                } 
  	                catch (IOException  e) 
  	                { 
  	                    e.printStackTrace(); 
  	                } 
  	            } 
  	            return st.nextToken(); 
  	        } 
  	  
  	        int nextInt() 
  	        { 
  	            return Integer.parseInt(next()); 
  	        } 
  	  
  	        long nextLong() 
  	        { 
  	            return Long.parseLong(next()); 
  	        } 
  	  
  	        double nextDouble() 
  	        { 
  	            return Double.parseDouble(next()); 
  	        } 
  	  
  	        String nextLine() 
  	        { 
  	            String str = ""; 
  	            try
  	            { 
  	                str = br.readLine(); 
  	            } 
  	            catch (IOException e) 
  	            { 
  	                e.printStackTrace(); 
  	            } 
  	            return str; 
  	        } 
  	    } 
  	    static class Pair{
  	    	int a;
  	    	int b;
  	    	Pair(int x, int y)
  	        {
  	            this.a = x;
  	            this.b = y;
  	        }
  	    }
  	    static boolean isPrime(long x)
  		{
  			if(x==1)
  				return false;
  			if(x<=3)
  				return true;
  			if(x%2==0 || x%3==0)
  				return false;
  			for(int i=5;i<=Math.sqrt(x);i+=2)
  				if(x%i==0)
  					return false;
  			return true;
  		}
  		static long gcd(long a,long b)
  		{
  			return (b==0)?a:gcd(b,a%b);
  		}
  		static int gcd(int a,int b)
  		{
  			return (b==0)?a:gcd(b,a%b);
  		}
  		public static long myPow(long x, long n) {
  	        if(x==0)
  	            return 0;
  	        if(n==0)
  	            return 1;
  	        if(n==1)
  	            return x;
  	        
  	        long calc=myPow((long)x,n/2);
  	        //System.out.println(calc+" "+n/2);
  	        if(Math.abs(n)%2==0)
  	            return (calc*calc);
  	        else 
  	            return (x*calc*calc);
  	    }
  		public static long lcm(long a , long b){
  	        return a * (b/gcd(a,b));
  	    }
  	    public static int lcm(int a , int b){
  	        return (a * b)/gcd(a,b);
  	    }
  	    public static void swap(int[] arr, int left , int right){
  	        int temp = arr[left];
  	        arr[left] = arr[right];
  	        arr[right] = temp;
  	    }
  	    public static void swap(char[] arr, int left , int right){
  	        char temp = arr[left];
  	        arr[left] = arr[right];
  	        arr[right] = temp;
  	    }
  	    public static void reverse(int[] arr){
  	        int left = 0;
  	        int right = arr.length-1;
  	 
  	        while(left <= right){
  	            swap(arr, left,right);
  	            left++;
  	            right--;
  	        }
  	    }
  	    public static void  seive(int val) {
  	    	int arr[]=new int[val+1];
  	    	
  	    	for(int i=2;i<=val;i++) {
  	    		if(arr[i]==0) {
  	    			prime.add(i);
  	    			
  	    			for(int j=i;j<=val;j+=i) arr[j]=1;
  	    		}
  	    		else continue;
  	    	}
  	    }
  	
  	
  	}