H. LOCALC++
ограничение по времени на тест
1 секунда
ограничение по памяти на тест
256 мегабайт
ввод
стандартный ввод
вывод
стандартный вывод

Ученые Берляндии разработали новый передовой защищенный отечественный язык программирования LOCALC++. В целом, этот язык является клоном языка C++ с той лишь разницей, что в LOCALC++ числа выводятся в консоль с разделителями.

В данной задаче рассматриваются только неотрицательные целые числа. При выводе число разбивается на группы из трех цифр, начиная с младших разрядов, и каждая группа отделяется пробелом. Например, число $$$178489$$$ будет выведено в виде $$$178\ 489$$$, число $$$17009$$$ в виде $$$17\ 009$$$, а число $$$5$$$ будет выведено в таком же виде.

Программа управления атомными электростанциями Берляндии, написанная на LOCALC++, вывела в лог очень важную статистику в виде набора чисел через пробел. Известно, что исходные числа были строго меньше $$$10^K$$$. Необходимо определить количество различных наборов чисел, вывод которых бы привел к такому же логу.

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

В первой строке задано число $$$N$$$, определяющее количество входных групп цифр и число $$$K$$$ ($$$1 \le N \le 2 \cdot 10^5$$$, $$$3 \le K \le 6 \cdot 10^5$$$).

Во второй строке задано $$$N$$$ групп цифр через пробел — лог программы управления атомными электростанциями Берляндии.

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

Необходимо вывести количество возможных исходных наборов чисел c учетом того, что они могли быть только строго меньше $$$10^K$$$. Гарантируется, что хотя бы один такой набор существует. Так как результат может быть достаточно большим, его необходимо вывести по модулю $$$10^9+7$$$.

Примеры
Входные данные
8 7
10 500 303 4 507 89 654 003
Выходные данные
6
Входные данные
3 6
328 032 0
Выходные данные
1