| 시간 제한 | 메모리 제한 | 제출 | 정답 | 맞힌 사람 | 정답 비율 |
|---|---|---|---|---|---|
| 1.5 초 | 1024 MB | 5 | 4 | 4 | 80.000% |
Хэллоуин --- очень популярное событие, в котором участвуют взрослые и дети всех возрастов. Разумеется, каждому владельцу магазина на главной улице города хочется чем-то выделиться, чтобы привлечь к себе как можно больше покупателей.
Некоторые пытаются выставить у себя на витринах самые красивые или, наоброт, жуткие тыквы, а некоторые пытаются креативно оформить рекламные вывески. Владелец <<Лавки Джека-Потрошителя>> решил <<распотрошить>> свою вывеску, чтобы она стала самой оригинальной на всей улице.
Вывеска представляет из себя таблицу размера $n \times m,ドル в каждой клетке которой может быть размещена ровно одна буква. Сама рекламная надпись состоит в точности из $n \cdot m$ букв. Распотрошить вывеску можно либо по любой строке, либо по любому столбцу. Потрошение по строке номер $i,ドル например, выглядит следующим образом:
Симметричным образом происходит потрошение по столбцу --- на нем указывается направление сверху-вниз, в котором выписываются соответствующие буквы, а левая и правая части, если не пусты, рекурсивно потрошатся.
Владельцу лавки стало интересно, сколько есть различных способов распотрошить вывеску. Два способа считаются различными, если хотя бы одна ячейка таблицы, принадлежащая какой-то выделенной строке в одном из способов, принадлежит выделенному столбцу в другом. Обратите внимание, что выделить в таблице 1ドル \times 1$ строку и выделить столбец --- разные способы!
Поскольку число способов может быть достаточно большим, выведите его по модулю 10ドル^9 + 7$.
В единственной строке через пробел дано два целых числа $n$ и $m$ (1ドル \leqslant n, m \leqslant 200$).
Выведите единственное целое число --- количество способов распотрошить вывеску по модулю 10ドル^9 + 7$.
1 1
2
2 2
14
3 2
48
Все возможные потрошения во втором примере: