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 *h*<sub class="lower-index">*i*</sub>. 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* &gt; *h*<sub class="lower-index">*i* + 1</sub>. 
Compute the minimal time (in seconds) required to eat all nuts.
The first line contains an integer *n* (1  ≤  *n* ≤ 10<sup class="upper-index">5</sup>) — the number of trees.

Next *n* lines contains the height of trees: *i*-th line contains an integer *h*<sub class="lower-index">*i*</sub> (1 ≤ *h*<sub class="lower-index">*i*</sub> ≤ 10<sup class="upper-index">4</sup>) — the height of the tree with the number *i*.
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
const int M=1e9+7;
void solve()
{
    int n;
    cin>>n;
    vector<int> arr(n);
    for(int i=0; i<n; i++)
    {
        cin>>arr[i];
    }
    arr.insert(arr.begin(), 0);
    int ans=2*n-1;
    for(int i=1; i<=n; i++)
    {
        ans+=abs(arr[i]-arr[i-1]);
    }
    cout<<ans<<endl;
}
int main() {
    ios_base::sync_with_stdio(false);
    cin.tie(nullptr);
    int t=1;
    while (t--) {
        solve();
    }
    return 0;
}
