Squirrel Liss loves nuts. There are n trees (numbered 1 to n from west to east) along a street and there is a delicious nut on the top of each tree. The height of the tree i is hi. Liss wants to eat all nuts.

Now Liss is on the root of the tree with the number 1. In one second Liss can perform one of the following actions:

  * Walk up or down one unit on a tree. 
  * Eat a nut on the top of the current tree. 
  * Jump to the next tree. In this action the height of Liss doesn't change. More formally, when Liss is at height h of the tree i (1 ≤ i ≤ n - 1), she jumps to height h of the tree i + 1. This action can't be performed if h > hi + 1. 



Compute the minimal time (in seconds) required to eat all nuts.

Input

The first line contains an integer n (1 ≤ n ≤ 105) — the number of trees.

Next n lines contains the height of trees: i-th line contains an integer hi (1 ≤ hi ≤ 104) — the height of the tree with the number i.

Output

Print a single integer — the minimal time required to eat all nuts in seconds.

Examples

Input

2
1
2


Output

5


Input

5
2
1
2
1
1


Output

14
/* +_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+
+_+_+_+ L.Ryuzaki's Code +_+_+_+_+_+_+_+_+
+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+  */

import java.lang.*; 
import java.io.*; 
import java.util.*;

public class codeforces {

  static class FastReader 
    {
        BufferedReader br; 
        StringTokenizer st; 
  
        public FastReader() 
        { 
            br = new BufferedReader(new
                     InputStreamReader(System.in)); 
        } 
  
        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 int gcd(int a, int b) 
    { 
    if (a == 0) 
        return b;  
    return gcd(b % a, a);  
    } 
      
    // method to return LCM of two numbers 
    static int lcm(int a, int b) 
    { 
        return (a*b)/gcd(a, b); 
    } 


    static int bst(char[] a,char k,int lo, int hi){
  
        int  mid = (lo+hi)/2;
        if(a[mid]==k)
        {
           return mid;
        }
        else if(k<a[mid]){
            return bst(a,k,lo,mid-1);
        }
        else{
          return bst(a,k,mid+1,hi);
        }
      
      }

      static int lst(char[] a, char b){
          int re=0;
          for(int i=0 ;i<a.length;++i)
          {
                if(a[i]==b)
                {
                    re=i;
                }
          }

          return re;
      }
  
    public static void main(String args[]) throws IOException{
 
       FastReader sc = new FastReader();
       OutputStream outputStream =System.out;
       PrintWriter cout =new PrintWriter(outputStream);
    
       HashMap<String,String> map = new HashMap<String,String>();
       int i,j,k,t,n,m,jump,eat,height,oldHeight=0;  
       
       n = sc.nextInt();
       eat=1;jump=1;
       int flag=0,sum=0;
       while(n-->0){
           height = sc.nextInt();

           if(flag==0){   // for first tree
                 sum+= height + eat;
                 oldHeight=height;
                 flag++; 
           }else if(height>oldHeight){
               sum+= jump + (height-oldHeight) + eat;
               oldHeight = height ;
           }else if(oldHeight>height){
               sum+= (oldHeight-height) + jump + eat ;
               oldHeight = height ;
           }else{
               sum+= jump+eat;
               oldHeight = height ;
           }


       }

       System.out.println(sum);

    }                               
}

/* +_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+
+_+_+_+ L.Ryuzaki's Code +_+_+_+_+_+_+_+_+_+_+_+
+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_  */
 

