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

import java.io.BufferedReader;
import java.io.DataInputStream;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.util.*;

public class CodeForce {
    
    public static void main(String args[])throws Exception{
       Scanner in =new Scanner ();
       int k =in.nextInt()  ;
       int trees[]=new int [k];
       int answer = 0;
       for(int i =0; i<k ; ++i){
           trees[i]=in.nextInt() ;
         }
           answer+=trees[0]+1;
       for(int i=0 ; i<k-1 ;++i ){
       
           
           answer+=(Math.abs(trees[i+1]-trees[i]) +2);
       
       }
       System.out.println(answer);
       
    }}

    
       


















class Scanner {

            BufferedReader br;
            StringTokenizer st;

            public Scanner() throws FileNotFoundException {
                // System.setOut(new PrintStream(new BufferedOutputStream(System.out), true));
                br = new BufferedReader(new InputStreamReader(System.in));
                //  br = new BufferedReader(new InputStreamReader(new FileInputStream(new File("input.txt"))));
            }

            public String next() {

                while (st == null || !st.hasMoreTokens()) {
                    try {
                        st = new StringTokenizer(br.readLine());
                    } catch (Exception e) {
                        throw new RuntimeException();
                    }
                }
                return st.nextToken();
            }

            public long nextLong() {
                return Long.parseLong(next());
            }

            public int nextInt() {
                return Integer.parseInt(next());
            }

            public double nextDouble() {
                return Double.parseDouble(next());
            }

            public String nextLine() {
                st = null;
                try {
                    return br.readLine();
                } catch (Exception e) {
                    throw new RuntimeException();
                }
            }

            public boolean endLine() {
                try {
                    String next = br.readLine();
                    while (next != null && next.trim().isEmpty()) {
                        next = br.readLine();
                    }
                    if (next == null) {
                        return true;
                    }
                    st = new StringTokenizer(next);
                    return st.hasMoreTokens();
                } catch (Exception e) {
                    throw new RuntimeException();
                }
            }
        }