C. Тараканьи бега
ограничение по времени на тест
1.5 секунд
ограничение по памяти на тест
256 мегабайт
ввод
стандартный ввод
вывод
стандартный вывод

Юля — организатор крупнейших в истории тараканьих бегов. В этой нетривиальной профессии главное — это грамотно выставить тараканов на старт, ну а дальнейшее уже будет в руках тараканьих богов. Известно, что номера, написанные мелом на спинках стартующих тараканов, могут иметь лидирующие нули и, что важно, номера тараканов на старте должны образовывать возрастающую последовательность. Неизвестно, кто и когда придумал это правило. Как бы то ни было, оно должно неукоснительно выполняться. Но вот незадача, мел кое-где стерся, вместо некоторых цифр остались только неясные пятна. Юля, как настоящий профессионал, пытается подобрать стёртые цифры так, чтобы не нарушить правило. Давайте же посчитаем сумму всех возможных номеров тараканов для всех возможных последовательностей.

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

В первой строке задано два целых числа $$$n$$$ и $$$m$$$ — количество тараканов в забеге и длина номера каждого из них. В следующих $$$n$$$ строках задано то, что осталось от номеров. Каждый номер составлен из символов от '0' до '9' и/или символа '?'.

$$$$$$1 \le n, m \le 50$$$$$$

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

Выведите сумму всех возможных номеров тараканов для всех возможных последовательностей по модулю $$$10^9+7$$$.

Примеры
Входные данные
2 2
??
??
Выходные данные
490050
Входные данные
2 3
4??
??2
Выходные данные
6403775
Входные данные
4 1
0
?
4
8
Выходные данные
42