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