q = [i for i in input()]
woe = []
for i, f in enumerate(q):
if not f.isalpha():
woe.append([i, f])
w = [i for i in q if i.isalpha()]
def func1(n):
if n.isalpha():
return n.lower()
else:
return 1
x = [str(i.lower()) for i in w if func1(i)]
for i in range(len(w)):
a = x[i:].index(chr(min([ord(i) for i in x[i:]])))
if w[i].lower() >= x[i+a]:
w.insert(i, w[a+i])
w.pop(a+i+1)
x.insert(i, x[a+i])
x.pop(a+i+1)
for s in woe:
w.insert(s[0], s[1])
print(''.join(w))