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

Азбука для слепых

Азбука для слепых

Известно, что в книгах для слепых для обозначения различных букв используются различные комбинации выступов, которые читающий различает на ощупь [1]. Пусть для обозначения буквы используется прямоугольник шириной m мм и высотой n мм, причем некоторые входящие в него квадратики размера 1 * 1 содержат выступ.

Поскольку слепой не видит границ прямоугольника, то он не может различить комбинации, получающиеся друг из друга сдвигом. Так, он не может различить комбинации а) и б) на рисунке. (В то же время комбинации а) и в) являются различимыми, поскольку не могут быть получены друг из друга сдвигом)

prb6875-01

Из-за этого при разработке алфавита для слепых появилась проблема: сколько различных букв можно представить с помощью выступов, если запрещается сопоставлять различным буквам комбинации, получающиеся друг из друга сдвигом. Прямоугольник совсем без выступов также нельзя использовать в качестве буквы (поскольку при написании слова между некоторыми буквами может появиться такой прямоугольник, например между а) и г) на рисунке).

Требуется подсчитать количество различных букв, которые можно представить таким способом, если прямоугольник имеет размер m * n.

В качестве примера, все буквы размера 2 * 2 приведены на рисунке. (Среди комбинаций, отвечающих одной букве, приведена только одна)

prb6875-02


[1] Рассматриваемая в задаче модель лишь приблизительно соответствует реальной действительности.

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

Два числа m и n. Поскольку человек одновременно не может воспринимать слишком много информации, то m * n30.

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

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

Лимит времени 1 секунда
Лимит использования памяти 128 MiB
Входные данные #1
2 2
Выходные данные #1
10
Входные данные #2
3 3
Выходные данные #2
400
Источник 2000, VIII Командный чемпионат школьников Санкт-Петербурга по программированию, 5 ноября, Задача A