import re
line = input()
left = ''
#提取字符
char = re.findall('[a-zA-Z]', line)
char = ''.join(char)
# print(char) AFamousSayingMuchAdoAboutNothing
#使用字典进行排序,使用 alpha.lower()作为判断条件和键值,收集保持了大小写不同的相同字符,然后按照键值排序。
chardic = {}
for i in char:
if i.lower() not in chardic:
chardic[i.lower()] = i
else:
chardic[i.lower()] += i
orderstr= {key: chardic[key] for key in sorted(chardic)}
# print(orderchar)
#拼接字符串,再将排序后字符串重新列表化,得到排序字母列表
temp = [value for value in orderstr.values()]
orderchar = list(''.join(temp))
#对初始字符串开始替换字母字符,每次替换用i计数,同时弹出脾虚字母列表,这样替换同步。
i = 0
while i < len(line):
if not line[i].isalpha():
left += line[i]
else:
if char:
left += orderchar.pop(0)
else:
left += line[i]
i+=1
print(left)