import java.util.*;

public class Main{
    public static void main(String[] arg){
        Scanner sc=new Scanner(System.in);
        while(sc.hasNextLine()){
            String strs =sc.nextLine();
        Map<Integer,Character> map = new HashMap<>();
        Character[] arr = new Character[strs.length()];
        int arrLen = 0;
        for(int i =0; i< strs.length();i++){
            if(!(('a'<=strs.charAt(i)&&strs.charAt(i)<='z')||('A'<=strs.charAt(i)&&strs.charAt(i)<='Z'))){
                map.put(i,strs.charAt(i));
            }else{
                //加入新数组
                arr[arrLen] = strs.charAt(i);
//                 System.out.print(arr[arrLen]);
                arrLen++;

            }
        }
//         for(int i=0;i<arr.length;i++){
//             System.out.print(arr[i]);
//         }

        //冒泡排序
        Character[] sarr = mangpao(arr,arrLen);
//         for(int i=0;i<sarr.length;i++){
//             System.out.print(sarr[i]);
//         }
        int j = 0;
        StringBuffer buffer = new StringBuffer();
        for(int i=0;i<strs.length();i++){
            if(map.containsKey(i)){
                buffer.append(map.get(i));
            }else{
                buffer.append(sarr[j]);
                j++;
            }
        }

        System.out.println(buffer.toString());
        }

    }
    public static Character[] mangpao(Character[] arr,int len){
        for(int i =len-1;i>=1;i--){
            for(int j=0;j<i;j++ ){
                if(((arr[j]+"").toLowerCase()).compareTo((arr[j+1]+"").toLowerCase())>0){
                    Character tem = arr[j+1];
                    arr[j+1] = arr[j];
                    arr[j] = tem;
                }
            }
        }
        return arr;
    }
}