Скорочення#4610

Скорочення

1 секунда
256 мегабайтів
Дуже легка

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

Визначте, за яку мінімальну кількість операцій можна знищити весь рядок . Гарантується, що це можна зробити.

Вхідні дані

У першому рядку слово . У другому рядку ціле число — кількість слів у списку. Далі рядків, у кожному з яких по одному слову зі списку . Усі слова складаються лише з рядкових латинських літер.

Вихідні дані

Одне число — мінімальна кількість операцій, необхідних для знищення рядка .

Обмеження

1 \le |S| \le 100

1 \le N \le 100

1 \le |M_i| \le 100

1 \le L \le |S|

Приклади

Приклад 1

Loading
Loading