Наліпки
У магазині за рогом продається n різних видів стікерів, i-й вид містить d-буквене слово s_i, складене з великих латинських літер. Усі стікери одного виду ідентичні. Можна купити скільки завгодно стікерів кожного виду. Потрібно скласти слово t з тих, що продаються в магазині стікерів, при цьому дозволяється наклеювати стікер поверх уже існуючих. Забороняється відрізати частини стікерів, а також якось інакше їх модифікувати.
Більш формально, спочатку у нас є рядок z, що складається з m символів "#" (тут m - довжина рядка t). За одну дію ми можемо вибрати будь-який з рядків s_i і ціле число p між 0 і m-d, і для кожного j {1, ..., d} замінити (p+j)-й символ слова z на j-й символ слова s_i (символи в рядках пронумеровані з одиниці).
Потрібно знайти мінімальну кількість таких дій, після яких вийде потрібне слово t.
Вхідні дані
Перша рядок вводу містить два цілих числа n і d (1 ≤ n, d ≤ 50) - кількість видів стікерів і кількість літер, написаних на кожному стікері.
i-й з наступних n рядків задає один з видів стікерів і містить рівно d великих латинських літер - слово s_i, написане на стікері i-го виду.
Останній рядок вводу задає потрібне слово t, що складається з не менше ніж однієї і не більше ніж 10^{4 } великих латинських літер.
Вихідні дані
Виведіть одне ціле число - мінімальну кількість стікерів, яке знадобиться для того, щоб скласти слово t. Якщо скласти слово з даного набору стікерів неможливо, виведіть слово "NO" замість числа.