while True: # 反复使用可执行程序,所以外部加while循环
    try: 
        c=input() # 输入一个字符串
        c1 = [a for a in c if a.isalpha()] # 获取该字符串中所有的字母记录在列中
        c1 = sorted(c1,key=str.upper)
		# 对字母列的元素,首先都将其统一大写或统一小写之后再排序,这样就避免了字母大小写对排序的干扰
		# 注意 key使用只是在排序过程中的计算过程 实际上并不会改变输出结果中的原来字母的值和大小写
		# 这样一来 巧妙完成了规则1和规则2 
		
		# 接下来,再次遍历原来的字符串,同样的判断,若是字母,那么我们就依次提取c1中的元素,若不是字母则提取		# 原字符串中本身的非字母其他
        index = 0 # 为了方便依次提取c1中的元素
        new_str='' # 新造的字符串,初始为空
        for each in c:
            if each.isalpha():
                new_str+=c1[index]
                index+=1
            else:
                new_str+=each
        print(new_str)

    except:
        break