У певній антивірусній компанії дослідники вивчають віруси. Вони знають про типів вірусів. Кожен вірус представлений рядком із малих латинських літер. Різні типи вірусів відповідають різним рядкам.
Нещодавно дослідники почали досліджувати раніше невідомі об'єкти — повністю інфіковані рядки. Рядок називається повністю інфікованим, якщо для кожного символу в існує підрядок , що містить цей символ і є одним із вірусних рядків.
Ваше завдання — знайти кількість повністю інфікованих рядків довжини з урахуванням заданих вірусів. Оскільки це число може бути дуже великим, виведіть його остачу за модулем 10^9+7.
Перший рядок містить два цілі числа і (1 \le n \le 400; 1 \le m \le 20).
Далі йдуть рядків, кожен містить опис вірусу. Кожний рядок складається з послідовності малих латинських літер.
Довжина кожного вірусу додатна і не перевищує символів.
Виведіть одне ціле число — остачу від ділення кількості повністю інфікованих рядків на 10^9+7.
Приклад 1