F. Процессоры-лжецы
ограничение по времени на тест
3 секунды
ограничение по памяти на тест
512 мегабайт
ввод
стандартный ввод
вывод
стандартный вывод

Для испытания новых алгоритмов машинного обучения Евгений использует n·m процессоров, расположенных в единичных клетках платы размера n × m. Таким образом, процессоры занимают n рядов, по m процессоров в каждом. При этом два процессора считаются соседними, если они расположены в соседних клетках одного ряда, или на одной и той же позиции в соседних рядах.

В результате неудачного эксперимента с новым алгоритмом некоторые из процессоров научились врать Евгению. Однако, благодаря тому, что была использована только базовая версия алгоритма, если какой-то процессор начинает врать, то он будет делать это всегда, поэтому результаты его работы всё ещё не сложно интерпретировать.

Теперь перед Евгением стоит задача определить, какие из процессоров постоянно выдают неверную информацию, но сначала он хочет оценить масштаб проблемы. Для этого он послал каждому из процессоров вопрос: верно ли, что среди соседних ему процессоров есть и исправные процессоры, и процессоры-лжецы? На удивление Евгения, все процессоры ответили на такой запрос утвердительно. Теперь он хочет узнать, какое минимальное количество процессоров-лжецов может находится на плате?

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

В единственной строке входных данных записаны два целых числа n и m (1 ≤ n ≤ 7, 1 ≤ m ≤ 100) — количество рядов в плате и количество процессоров в одном ряду соответственно.

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

Выведите одно целое число — минимальное возможное количество процессоров-лжецов на плате, при котором каждый процессор мог сообщить Евгению, что среди его соседей есть и исправные процессоры и процессоры-лжецы.

Примеры
Входные данные
2 3
Выходные данные
2
Входные данные
6 6
Выходные данные
10
Примечание

Одним из возможных решений в первой тесте является (испорченные процессоры отмечены как 1):


100
001