F. Большое замощение доминошками
ограничение по времени на тест
2 секунды
ограничение по памяти на тест
512 мебибайт
ввод
стандартный ввод
вывод
стандартный вывод

Доминошка на клетчатой плоскости — это фигура из двух клеток, имеющих общую сторону. Замощение доминошками прямоугольника из $$$m \times n$$$ клеток — это такой набор доминошек, целиком лежащих внутри прямоугольника, что каждая клетка прямоугольника покрыта ровно одной из них. Два замощения $$$P$$$ и $$$Q$$$ считаются различными, если существуют доминошки $$$p \in P$$$ и $$$q \in Q$$$, у которых ровно одна общая клетка.

Сколько существует способов замостить прямоугольник $$$m \times n$$$ доминошками? Так как количество способов может быть очень большим, нужно вывести ответ по модулю $$$10^9 + 7$$$.

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

Первая строка ввода содержит два целых числа $$$m$$$ и $$$n$$$ — высота и ширина прямоугольника, соответственно ($$$1 \le m \le 6$$$, $$$1 \le n \le 10^{18}$$$).

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

Выведите одно число — количество способов замостить прямоугольник $$$m \times n$$$ доминошками по модулю $$$10^9 + 7$$$.

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