E. Палочки и лесенки
ограничение по времени на тест
2 секунды
ограничение по памяти на тест
256 мегабайт
ввод
stdin
вывод
stdout

Вам задана фигура на клетчатом поле, представляющая лестницу, состоящую из 7 ступеней. Ширина ступени высоты i равна wi клеток. Формально, фигура представляет собой последовательно соединенные прямоугольники размером wi × i так, что стороны wi лежат на одной прямой. Так, например, если все wi = 1, фигура будет выглядеть так (различными цветами обозначены различные прямоугольники):

А если w = {5, 1, 0, 3, 0, 0, 1}, то так:

Найдите количество способов закрасить некоторые из границ клеток, лежащих внутри фигуры, так, чтобы ни у какой из клеток не были закрашены все четыре границы. Границы клеток, лежащие на границе фигуры, следует считать закрашенными. Способы, различающиеся поворотом фигуры, следует считать различными.

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

В единственной строке входных данных содержатся 7 чисел w1, w2, ..., w7 (0 ≤ wi ≤ 105). Гарантируется, что хотя бы одно из wi не равно нулю.

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

В единственную строку выходных данных выведите единственное число — ответ на задачу по модулю 109 + 7.

Примеры
Входные данные
0 1 0 0 0 0 0
Выходные данные
1
Входные данные
0 2 0 0 0 0 0
Выходные данные
7
Входные данные
1 1 1 0 0 0 0
Выходные данные
9
Входные данные
5 1 0 3 0 0 1
Выходные данные
411199181
Примечание

Всевозможные раскраски третьего примера представлены ниже: