36. Пары букв (2.0)

Не решаласьНе определена

Вам даны строки s1,s2,...,sns_1, s_2, ..., s_n длиной 22, каждая из которых состоит из заглавных английских символов, и целое число kk. При этом в этой задаче рассматриваются только первые 2020 символов английского алфавита.

Вам нужно составить из них некоторую строку ww, при этом вам нужно каждой строке из заданных nn поставить в соответствие некоторое требование, обозначаемое числом cic_i.

Пусть rev(s)rev(s) - это строка ss задом наперед. Если rev(s)srev(s) \neq s, то ii-е требование означает, что суммарно в строке ww строки sis_i и rev(si)rev(s_i) должны встречаться cic_i раз как подстрока. Если rev(si)=sirev(s_i) = s_i, то строка sis_i должна входить ровно cic_i раз как подстрока. Важно, чтобы строки длины 22, не указанные в качестве заданных, не встречались в строке. Найдите количество способов поставить в соответствие каждой данной подстроке некоторое требование 1cik1 \le c_i \le k, чтобы существовала строка ww, для которой удовлетворены все nn требований и не встречаются не указанные строки длины 22. Так как количество способов может быть большим, выведите его остаток от деления на 998244353998244353.

Формат ввода

В первой строке вам даны числа 1n2101 \le n \le 210 и 1k1091 \le k \le 10^9, количество строк длины 22, для которых нужно определить требование, и ограничение на требования соответственно. В следующей строке вам заданы через пробел сами подстроки длины 22. Каждая состоит из двух заглавных английских символов, которые в свою очередь являются одними из первых 2020 символов английского алфавита. Гарантируется, что для любой пары 1i<jn1 \le i < j \le n мультимножества символов подстрок sis_i и sjs_j различаются. Для лучшего понимания смотрите примечание.

Формат вывода

Выведите искомое количество способов по модулю 998244353998244353.

Примечание

Мультимножество - набор элементов(возможно, повторяющихся), в котором порядок не имеет значения.

Два мультимножества различаются, если существует элемент, который встречается разное количество раз в этих мультимножествах.

Суммарное количество различных мультимножеств, содержащих два символа(каждый символ - один из первых 2020 символов английского алфавита), как раз равно 210210.

В первом примере одним из способов будет поставить в соответствие строке AAAA требование 22, а строке ABAB - требование 11. Тогда подойдет строка AAABAAAB.

Во втором примере мы можем всем строкам поставить требование 11, например. Обратите внимание, строка ABDCABABDCAB не может соответствовать корректному набору требований, так как в ней присутствует подстрока CACA, которая не указана во входных данных.

Ограничения

Ограничение времени

5 с

Ограничение памяти

256 МБ

Пример 1

Ввод
2 4
AA AB
Вывод
16

Пример 2

Ввод
4 2
AB BC CD DB
Вывод
14
Нужно войти, чтобы отправить решение.Войти