Підрядок паліндрома
Якийсь щедрий чоловік люб'язно надав вам рядок , що складається з малих літер латинського алфавіту. Він просить вас вставити рівно малих літер латинського алфавіту в так, щоб утворився паліндром. Паліндром — це рядок, який читається однаково зліва направо і справа наліво. Наприклад, "noon"
, "testset"
і "a"
є паліндромами, тоді як "test"
і "codeforces"
— ні.
Ви можете вибрати будь-які малих літер латинського алфавіту і вставити кожну з них у будь-яку позицію в , включаючи початок або кінець. Необхідно вставити рівно літер, навіть якщо можна перетворити на паліндром, вставивши менше літер.
Знайдіть кількість паліндромів, які можна отримати таким чином, за модулем .
Вхідні дані
У першому рядку подано рядок . Кожен символ у — це мала літера латинського алфавіту.
У другому рядку записано ціле число .
Вихідні дані
Виведіть кількість паліндромів, які можна отримати, за модулем .
Приклади
У першому прикладі можна отримати паліндром "reviver"
, вставивши 'r'
в кінець "revive"
.
У другому прикладі можна отримати наступні паліндромів: "adada"
, "adbda"
, ..., "adzda"
, "dadad"
і "ddadd"
.