На міжнародній олімпіаді з мов проходить етап відбору. Кожен учасник повинен представити свою мову.
Мурад вирішив, що його мова цікава, і бере участь у відборі. У його мові є букв (c_1, c_2, \ldots, c_m). Будь-яке слово, складене з цих букв, існує в цій мові.
Щоб мова виглядала більш впорядкованою, Мурад вирішив впорядкувати всі слова. Він розташував слова за зростанням їх довжини, а якщо довжини збігалися, то в лексикографічному порядку.
Під час відбору всім членам журі сподобалася мова Мурада, і вони вирішили випробувати його, давши задачу, пов'язану з його мовою. Мураду дали певне слово з його мови і попросили визначити його позицію в побудованій ним послідовності слів.
Допоможіть Мураду в цьому завданні.
Відповідь може бути дуже великою, тому потрібно знайти залишок від ділення відповіді на число .
У першому рядку задано кількість букв (1 \le m \le 26) у мові Мурада. У наступному рядку через пробіл наведено самі букви в алфавітному порядку c_1, c_2, \ldots, c_m. У третьому рядку дано слово (1 \le |S| \le 10^6) з мови Мурада (тут позначає довжину рядка ).
Виведіть позицію слова у побудованій послідовності слів, обчислену за модулем .
Приклад 1
Приклад 2
У першому тесті слова в мові мають вигляд: a, b, aa, ab, ba, bb, aaa, aab, aba, abb, baa, bab, bba, bbb,
У другому тесті слова в мові мають вигляд: a, b, c, aa, ab, ac, ba, bb, bc, ca, cb, cc, aaa,