Задано рядок S та список M, який складається з N слів, кожне з яких довжини L. За одну операцію можна вибрати деякий підрядок рядка S, якщо такий зустрічається у якості слова у списку M, і вирізати з рядка S. Після чого частини рядка S, що залишились, якщо такі є, склеюються.
Визначте, за яку мінімальну кількість операцій можна знищити весь рядок S. Гарантується, що це можна зробити.
У першому рядку слово S. У другому рядку ціле число N — кількість слів у списку. Далі N рядків, у кожному з яких по одному слову зі списку M. Усі слова складаються лише з рядкових латинських літер.
Одне число — мінімальна кількість операцій, необхідних для знищення рядка S.
Обмеження
1 ≤ |S| ≤ 100
1 ≤ N ≤ 100
1 ≤ |M_i| ≤ 100
1 ≤ L ≤ |S|