const rl = require("readline").createInterface({ input: process.stdin });
var iter = rl[Symbol.asyncIterator]();
const readline = async () => (await iter.next()).value;

void (async function () {
    while ((line = await readline())) {
        const len = line.length;
// 将整个字符串分成3份,0-9一份,a-z一份,A-Z一份
// 然后每份进行排序,使用sort方法,默认升序
        let numArr = [];
        let CapitalArr = [];
        let lowerArr = [];
        for (let i = 0; i < len; i++) {
            let str = line[i];
            switch (str) {
                case str <= 9 && str >= 0:
                    numArr.push(str);
                    break;
                case str.charCodeAt() <= 90 && str.charCodeAt() >= 65:
                    CapitalArr.push(str);
                    break;
                default:
                    lowerArr.push(str);
            }
        }
        numArr = numArr.sort()
        CapitalArr = CapitalArr.sort()
        lowerArr = lowerArr.sort()
        const result = numArr.join('')+CapitalArr.join('')+lowerArr.join('')
        console.log(result)
    }
})();