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))