Рамзес II щойно повернувся з перемогою з битви. Щоб увіковічнити свою перемогу, він вирішив створити величний сад. Сад складатиметься з довгого ряду рослин, який простягатиметься від його палацу в Луксорі до храму в Карнаці. У саду будуть лише лотоси й папіруси, оскільки вони символізують Верхній і Нижній Єгипет відповідно.
У саду має бути рівно рослин. Додатково, він має бути збалансований: у будь-якому підрядку саду кількість лотосів і папірусів не повинна відрізнятися більше ніж на .
Сад можна представити у вигляді рядка з літер 'L' (лотос) і 'P' (папірус). Наприклад, для n = 5 існує можливих збалансованих садів. В алфавітному порядку це: , , , , , , , , , , , , та .
Можливі збалансовані сади певної довжини можна впорядкувати за алфавітом і пронумерувати, починаючи з . Наприклад, для n = 5 сад під номером — це .
Напишіть програму, яка, маючи кількість рослин та рядок, що представляє збалансований сад, обчислює номер, який відповідає цьому саду, за модулем заданого числа . Зверніть увагу, що у розв'язанні значення має значення лише з погляду спрощення обчислень. Відомо, що 1 \leq n \leq 1\ 000\ 000, 7 \leq m \leq 10\ 000\ 000.
Ваша програма повинна читати зі стандартного вводу у такому форматі: - У першому рядку міститься ціле число — кількість рослин у саду. - У другому рядку ціле число . - У третьому рядку рядок із символів 'L' (лотос) або 'P' (папірус), що описує збалансований сад.
Ваша програма повинна вивести одне ціле число від до m-1, включно: номер, під яким у списку алфавітно впорядкованих садів знаходиться даний сад із вхідних даних, по модулю .
Приклад 1