eolymp
bolt
Попробуйте наш новый интерфейс для отправки задач
Задачи

Макароны

Макароны

Пьер известен своими макаронами. Он делает круглые макароны, хранящиеся в квадратных коробках размером 1 * 1, и овальные макароны, хранящиеся в прямоугольных коробках размером 1 * 2 (или, повернутые в прямоугольных коробках размером 2 * 1). Пьер хочет заполнить прямоугольный стол размером n * m двумя видами макарон, то есть стол должен быть полностью заполнен, без свободного места. Ширина стола n мала, чтобы гость мог легко взять макароны, а длина m велика, чтобы вместить огромное количество гостей. Чтобы стол был красивым, ориентация макарон всегда должна быть выровнена по сторонам стола.

Пьер хочет знать, сколько существует способов накрыть стол. Вы можете помочь ему?

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

Два целых числа n (1n8) и m (1m1018).

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

Выведите количество вариантов накрыть стол по модулю 109.

Лимит времени 1 секунда
Лимит использования памяти 128 MiB
Входные данные #1
2
2
Выходные данные #1
7
Входные данные #2
2
4
Выходные данные #2
71
Источник 2017 ACM Southwestern Europe Regional Contest (SWERC), Париж, Ноябрь 26, Задача C