11748. Друкарська машинка


Відправити розв'язок

Бали: 100
Time limit: 2.0s
Memory limit: 500M

Author:
Problem type
Allowed languages
C++, Java, Pascal, Python

Маємо машинку з \(N\) рядів. Клавіші в \(i\)-му рядку зверху можуть вводити символи рядка \(S_i\).

Скористаємося цією клавіатурою для введення рядка, як показано нижче.

  • Спочатку виберіть ціле число \(1 \le k \le N\).

  • Потім почніть з порожнього рядка та використовуйте лише клавіші в \(k\)-му рядку зверху, щоб ввести рядок довжиною рівно \(L\).

Скільки рядків довжиною \(L\) можна ввести таким чином?

Оскільки відповідь може бути величезною, виведіть її за модулем 998244353.

Обмеження

  • \(1 \le N \le 18\)

  • \(1 \le L \le 10^9\)

  • \(S_i\) є непорожньою підпослідовністю 'abcdefghijklmnopqrstuvwxyz'.

Формат вхідних даних

Перший рядок містить цілі числа \(N, L\)

Наступні  \(N\) рядків містять \(S_i\)

Числа розділяються пропуском.

Формат вихідних даних

У вихідний потік виведіть відповідь.

Примітка

До прикладу 1:

Ми можемо ввести сім рядків: 'aa', 'ab', 'ac', 'ba', 'bb', 'ca', 'cc'.

Приклад вхідних даних

2 2
ab
ac

Приклад вихідних даних

7

Приклад вхідних даних

4 3
abcdefg
hijklmnop
qrstuv
wxyz

Приклад вихідних даних

1352

Приклад вхідних даних

5 1000000000
abc
acde
cefg
abcfh
dghi

Приклад вихідних даних

346462871

Коментарі

Ще немає коментарів.