import re
# 计算每个字符的字母表排序、每个字符的原始顺序
arr = str(input())
# arr.split()
xrr = []
nrr = {}
for i in range(len(arr)):
if re.search(r'[a-z]+', arr[i]):
xrr.append([
i, # 0. 原始顺序
ord(arr[i]) - ord('a'), # 1. 字母顺序
arr[i], # 2. 主要内容
])
elif re.search(r'[A-Z]+', arr[i]):
xrr.append([
i,
ord(arr[i]) - ord('A'),
arr[i],
])
else:
# 其他字符保持原有位置
nrr[i] = arr[i]
# def sorted_key(x):
# return x[1], x[0]
xrr = sorted(xrr,key=lambda x:(x[1], x[0]) )
# print(xrr)
idx = 0
for i in range(len(arr)):
if i in nrr:
print(nrr[i], end='')
idx+=1
continue
else:
print(xrr[i-idx][2], end='')
# while idx < len(arr):
# print(nrr[idx], end='')
# idx+=1