Віруси#2516

Віруси

2 секунди
256 мегабайтів
Легка

У певній антивірусній компанії дослідники вивчають віруси. Вони знають про типів вірусів. Кожен вірус представлений рядком із малих латинських літер. Різні типи вірусів відповідають різним рядкам.

Нещодавно дослідники почали досліджувати раніше невідомі об'єкти — повністю інфіковані рядки. Рядок називається повністю інфікованим, якщо для кожного символу в існує підрядок , що містить цей символ і є одним із вірусних рядків.

Ваше завдання — знайти кількість повністю інфікованих рядків довжини з урахуванням заданих вірусів. Оскільки це число може бути дуже великим, виведіть його остачу за модулем 10^9+7.

Вхідні дані

Перший рядок містить два цілі числа і (1 \le n \le 400; 1 \le m \le 20).

Далі йдуть рядків, кожен містить опис вірусу. Кожний рядок складається з послідовності малих латинських літер.

Довжина кожного вірусу додатна і не перевищує символів.

Вихідні дані

Виведіть одне ціле число — остачу від ділення кількості повністю інфікованих рядків на 10^9+7.

Приклади

Приклад 1

Loading
Loading