import java.util.Arrays;
import java.util.Scanner;

/**
 * 【字符串排序】
 *
 *  编写一个程序,将输入字符串中的字符按如下规则排序。
 *
 * 规则 1 :英文字母从 A 到 Z 排列,不区分大小写。
 * 如,输入: Type 输出: epTy
 *
 * 规则 2 :同一个英文字母的大小写同时存在时,按照输入顺序排列。
 * 如,输入: BabA 输出: aABb
 *
 * 规则 3 :非英文字母的其它字符保持原来的位置。
 * 如,输入: By?e 输出: Be?y
 */
public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        String nextLine = sc.nextLine();

        char[] chars = nextLine.toCharArray();
        char[] copyChars = new char[chars.length];
        // 复制原始字符数组
        for (int i = 0; i < chars.length; i++) {
            copyChars[i] = chars[i];
        }

        // 去掉非字母字符
        String replaceAll = nextLine.replaceAll("[^a-zA-Z]", "");
        char[] charArray = replaceAll.toCharArray();
        // 冒泡排序(稳定排序,不改变原本顺序)
        for (int i = 0; i < charArray.length - 1; i++) {
            for (int j = 0; j < charArray.length - i - 1; j++) {
                char aCase = Character.toLowerCase(charArray[j]);
                char bCase = Character.toLowerCase(charArray[j + 1]);
                if (aCase > bCase) {
                    char temp = charArray[j];
                    charArray[j] = charArray[j + 1];
                    charArray[j + 1] = temp;
                }
            }
        }

        // 打印结果
        for (int i = 0, j = 0; i < copyChars.length; i++) {
            if (!Character.isLetter(copyChars[i])) {
                System.out.print(copyChars[i]);
                continue;
            }
            System.out.print(charArray[j]);
            j++;
        }
    }
}