module app;

import std.algorithm;
import std.array;
import std.conv;
import std.stdio;
import std.string;

void main()
{
	auto input = parseInput();
	auto result = main2(input);
    writefln("%d", result);
}

int main2(Input input)
{
    int count = 0;
    for (int i = 0; i < input.n; i++)
    {
        int a = 0;
        if (i == 0)
            a = input.b[0];
        else if (i == input.n - 1)
            a = input.b[$-1];
        else
            a = min(input.b[i-1], input.b[i]);
        count += a;
    }
    return count;
}

unittest
{
    Input input = {3, [2,5]};
    auto result = main2(input);
    assert(result == 9);
}
unittest
{
    Input input = {2, [3]};
    auto result = main2(input);
    assert(result == 6);
}
unittest
{
    Input input = {6, [0,153,10,10,23]};
    auto result = main2(input);
    assert(result == 53);
}

struct Input
{
	uint n;
	int[] b;
}

Input parseInput()
{
	Input input = void;
	input.n = readln().strip().to!uint;
	input.b = readln().strip().split().map!(s => s.to!int).array;
	return input;
}
