G. Забористое разнообразие
ограничение по времени на тест
2 секунды
ограничение по памяти на тест
256 мегабайт
ввод
стандартный ввод
вывод
стандартный вывод

Давным-давно Василий Иванович соорудил на своей даче хороший забор. Василий Иванович называет забор хорошим, если он представляет собой ряд из n последовательно скреплённых вертикальных досок сантиметровой ширины, высота каждой из которых — целое положительное число сантиметров. Хозяин дачи прекрасно помнит, что высота i-й слева доски равна hi.

Сегодня Василий Иванович решил изменить конструкцию сооружённого забора, спилив у него сверху связную часть таким образом, чтобы забор остался хорошим. Спиленная часть должна состоять только из верхних частей досок, причём соседние части должны быть соединены между собой (иметь ненулевую длину соприкосновения до выпиливания из забора).

Вам, как любопытному соседу Василия Ивановича, предстоит посчитать количество возможных способов спилить ровно одну часть, как описано выше. Два способа спилить часть называются различными, если для оставшихся заборов существует такое i, что высоты i-х досок различаются.

Поскольку забор Василия Ивановича может быть очень высоким и длинным, найдите остаток от деления искомого количества способов на 1 000 000 007 (109 + 7).

Входные данные

В первой строке содержится число n (1 ≤ n ≤ 1 000 000) — количество досок в заборе Василия Ивановича.

Во второй строке содержатся n разделённых пробелом чисел h1, h2, ..., hn (1 ≤ hi ≤ 109), где hi равно высоте i-й слева доски забора.

Выходные данные

Выведите остаток при делении r на 1 000 000 007, где r — количество способов спилить ровно одну связную часть так, чтобы часть состояла из верхних частей досок и оставшийся забор был хорошим.

Примеры
Входные данные
2
1 1
Выходные данные
0
Входные данные
3
3 4 2
Выходные данные
13
Примечание

Из забора первого примера невозможно вырезать ровно одну часть таким образом, чтобы получившийся забор остался хорошим.

Все возможные варианты получившегося забора из второго примера выглядят следующим образом (серым цветом выделена вырезаемая часть):