'''Шифр Цезаря
Шифр Цезаря (шифр сдвига) — один из самых простых и наиболее широко известных методов шифрования. Шифр Цезаря — это
вид шифра подстановки, в котором каждый символ в открытом тексте заменяется символом, находящимся на некотором
постоянном числе позиций левее или правее него в алфавите.

Шифр подстановки — метод шифрования с заменой элементов исходного открытого текста другими, в соответствии с неким
правилом.

Например, в шифре со сдвигом вправо на 33 позиции символ A заменяется символом D, символ B — символом E, и так далее,
 до символа Z, заменяемого символом C.

Шифр Цезаря со сдвигом на 3
Шифр Цезаря со сдвигом на 3
Шифр назван в честь римского полководца Гая Юлия Цезаря, использовавшего его для секретной переписки со своими
генералами.

Шифр Цезаря легко взламывается и не имеет почти никакого практического применения.

Математическая модель
Если сопоставить каждый символ алфавита с его порядковым номером (нумеруя с 00), то шифрование и дешифрование можно
 выразить формулами модульной арифметики:

 y=(x+k) \mod  n \phantom{,} \\ x=(y-k) \mod  n,
 y=(x+k) mod n,
x=(y−k) mod n,
где xx — символ открытого текста, yy — символ шифрованного текста, nn — мощность алфавита (количество символов),
 а kk — ключ.

Под операцией mod подразумевается операция нахождения остатка. В языке Python для нахождения остатка от деления двух
 чисел, мы используем оператор %.

Пример
Шифрование с использованием ключа k=3k=3. Буква «Е» «сдвигается» на три буквы вперед и становится буквой «З». Твердый
знак, перемещенный на три буквы вперед, становится буквой «Э», буква «Я», перемещенная на три буквы вперед,
становится буквой «В», и так далее:

Исходный алфавит: А Б В Г Д Е Ё Ж З И Й К Л М Н О П Р С Т У Ф Х Ц Ч Ш Щ Ъ Ы Ь Э Ю Я
Шифрованный:      Г Д Е Ё Ж З И Й К Л М Н О П Р С Т У Ф Х Ц Ч Ш Щ Ъ Ы Ь Э Ю Я А Б В
Оригинальный текст:

Съешь же ещё этих мягких французских булок, да выпей чаю.
Шифрованный текст:

Фэзыя йз зьи ахлш пвёнлш чугрщцкфнлш дцосн, жг еютзм ъгб.
Взлом шифра
Шифр Цезаря может быть легко взломан даже в случае, когда взломщик знает только зашифрованный текст. Можно рассмотреть
две ситуации:

Взломщик знает (или предполагает), что использовался простой шифр подстановки, но не знает, что это — схема Цезаря.
Взломщик знает, что использовался шифр Цезаря, но не знает значение сдвига.
В первом случае шифр может быть взломан с применением метода частотного анализа. Используя этот метод, взломщик,
вероятно, быстро заметит регулярность в решении и поймет, что используемый шифр — шифр Цезаря.


Распределение букв в типичном образце текста на английском
языке имеет характерный и предсказуемый вид
Во втором случае взлом шифра еще более прост. Существует не так много вариантов значений сдвига (2626 для английского
языка, 3232 для русского языка), все они могут быть проверены перебором.

Примечания
Примечание 1. Используемое преобразование в шифре Цезаря обычно обозначают как ROT N, где N — сдвиг, ROT — сокращение
от слова ROTATE, в данном случае «циклический сдвиг». Например, обозначение ROT 2 обозначает сдвиг на 22 позиции,
то есть, «а» превращается в «в», «б» в «г», и так далее, и в конце «ю» превращается в «а» а «я» — в «б».

Примечание 2. Число разных преобразований зависит от длины алфавита:

для русского языка возможно 3232 разных преобразования (преобразования ROT 0 и ROT 33 сохраняют исходный текст, а
дальше начинаются уже повторения);
для английского языка возможны 2525 разных преобразований (преобразования ROT 0 и ROT 26 сохраняют исходный текст,
а дальше начинаются уже повторения).
Примечание 3. Неалфавитные символы — знаки препинания, пробелы, цифры — не меняются.

Примечание 4. Естественным развитием шифра Цезаря стал шифр Виженера.'''

# eng_lower_alphabet = 'abcdefghijklmnopqrstuvwxyz'
# eng_upper_alphabet = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
# rus_lower_alphabet = "абвгдежзийклмнопрстуфхцчшщъыьэюя"
# rus_upper_alphabet = "АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ"
# symbol = [" ", ",", ".", "!", "?"]
#
# print("Выберите язык: aнгл=e, рус=r")
# lan = input()
# print("Выберите шифрование: шифрование - ch, дешифрование - def")
# chif = input()
# print("Введите ключ шифрования")
# n = int(input())
# print("Введите фразу")
# f = input()
#
# def chru(chifr, n, l, fraza):
#     if l == 'r':
#         moch = 32
#     if l == 'e':
#         moch = 26
#     if chifr== 'def':
#         n = -n
#     for i in range(len(fraza)):
#         if fraza[i].isalpha():
#             if fraza[i] == fraza[i].upper():
#                 for j in range (moch):
#                     if moch == 32:
#                         if fraza[i] == rus_upper_alphabet[j]:
#                             print(rus_upper_alphabet[(j+n)%moch], end = '')
#                             break
#                     if moch == 26:
#                         if fraza[i] == eng_upper_alphabet[j]:
#                             print(eng_upper_alphabet[(j+n)%moch], end = '')
#                             break
#             elif fraza[i] ==fraza[i].lower():
#                 for j in range (moch):
#                     if moch == 32:
#                         if fraza[i] == rus_lower_alphabet[j]:
#                            print(rus_lower_alphabet[(j+n)%moch], end='')
#                            break
#                     if moch == 26:
#                         if fraza[i] == eng_lower_alphabet[j]:
#                            print(eng_lower_alphabet[(j+n)%moch], end = '')
#                            break
#         else:
#             print(fraza[i], end='')
#
# chru(chif, n, lan, f)
'''Зашифруйте текст "Блажен, кто верует, тепло ему на свете!" алгоритмом Цезаря с сдвигом вправо на 10 символов.

Примечание. Считайте, что русский алфавит состоит из 3232 букв (буква ё отсутствует).

Напишите текст
Верно решили 3 246 учащихся
Из всех попыток 38% верных
 Правильно, молодец!'''
# d = int(input())
# a = str(input())
# for i in a:
#     if i == chr(32):
#         print(i, end="")
#     elif i == chr(33):
#         print(i, end="")
#     elif i == chr(44):
#         print(i, end="")
#     elif i == 1100:
#         print(chr(97), end="")
#     else:
#         i = ord(i) - d   ######+++++++++++++++++++++
#         print(chr(i), end="")
#     print(end="")

'''Зашифруйте текст "To be, or not to be, that is the question!" алгоритмом Цезаря с сдвигом вправо на 17 символов.

Напишите текст'''
#
# def caesar(alphabet):
#     text = input("Text: ")
#     shift = ii(input("Shift: "))
#
#     def get_char(char, alphabet_, shift_):
#         if char.isalpha():
#             i = 0
#             if char.isupper():
#                 i = 1
#             return alphabet_[i][(alphabet_[i].index(char) + shift_) % len(alphabet_[0])]
#         return char
#
#     shifted = "".join([get_char(char, alphabet, shift) for char in text])
#     print(shifted)
#
#
# def english_alphabet():
#     return "".join([chr(char) for char in range(ord("a"), ord("z") + 1)])
#
#
# def ii(message=""):
#     return int(input(message))
#
#
# caesar([english_alphabet(), english_alphabet().upper()])



'''
Аве, Цезарь 🌶️
На вход программе подается строка текста на английском языке, в которой нужно зашифровать все слова. Каждое 
слово строки следует зашифровать с помощью шифра Цезаря (циклического сдвига на длину этого слова). Строчные 
буквы при этом остаются строчными, а прописные – прописными.

Формат входных данных 
На вход программе подается строка текста на английском языке.

Формат выходных данных
Программа должна вывести зашифрованный текст в соответствии с условием задачи.

Примечание. Символы, не являющиеся английскими буквами, не изменяются.

Sample Input 1:

Day, mice. "Year" is a mistake!
Sample Output 1:

Gdb, qmgi. "Ciev" ku b tpzahrl!
Sample Input 2:

my name is Python!
Sample Output 2:

oa reqi ku Veznut!
'''


def encrypt(text: str) -> str:
    words = []

    for word in text.split():
        new_word = ''
        word_len = len([c for c in word if c.isupper() or c.islower()])

        for char in word:
            if char.isupper():
                new_word += chr((ord(char) + word_len - 65) % 26 + 65)
            elif char.islower():
                new_word += chr((ord(char) + word_len - 97) % 26 + 97)
            else:
                new_word += char
        words.append(new_word)

    return ' '.join(words)


text = input()
print(encrypt(text))