Обертання звернення#7735

Обертання звернення

1 секунда
64 мегабайти
Дуже легка

В певний час для кодування інформації використовувалася досить проста схема — обертання та зміщення символів в алфавіті. Одним із таких методів була схема ROT13, де символи A-Z зміщувалися на позицій. Ця схема широко застосовувалася для "приховування" даних у багатьох програмах з кінця 1990-х до початку 2000-х років.

Компанія Insecure Inc. отримала завдання створити алгоритм, який би "покращив" цю схему шляхом спочатку звернення, а потім обертання. Наприклад, застосуємо алгоритм до рядка ABCD зі зверненням та обертанням на : після звернення отримаємо DCBA, а після обертання на позицію отримаємо EDCB.

Вам потрібно реалізувати цю схему кодування для рядків, що містять лише великі літери, символи нижнього підкреслення та точки. Обертання слід виконувати згідно з наступним алфавітним порядком:

ABCDEFGHIJKLMNOPQRSTUVWXYZ_.

Символ нижнього підкреслення йде після Z, а точка йде після нижнього підкреслення. Обертання вперед на означає, що 'A' буде замінено на 'B', тобто 'A' → 'B', 'B' → 'C', ..., 'Z' → ' _ ', ' _ ' → '.' і '.' → 'A'. Аналогічно, обертання на означає 'A' → 'D', 'B' → 'E', ..., '.' → 'C'.

Вхідні дані

Кожен рядок містить ціле число і рядок символів. Число (1 \leq n \leq 27) вказує на кількість позицій, на яку здійснюється обертання вперед. Рядок представляє повідомлення, яке потрібно закодувати, і містить від до символів, серед яких великі літери, нижні підкреслення та точки. Останній рядок містить і означає кінець вхідних даних.

Вихідні дані

Для кожного тесту виведіть в окремому рядку "закодоване" повідомлення після виконання звернення та обертання.

Приклади

Приклад 1

Loading
Loading