import java.util.*;

public class Main{
    public static void main(String[] args){
        Scanner scan=new Scanner(System.in);
        String input=scan.nextLine();
        
        //step01
        input=input.replaceAll(" ","");
        
        //step02
        String[] inputs=input.split("");
        List<String> odds=new ArrayList<>();
        List<String> evens=new ArrayList<>();
        for(int i=0;i<inputs.length;i++){
            if(i%2==1) {
                odds.add(inputs[i]);
            }else {
                evens.add(inputs[i]);
            }
        }
        Collections.sort(odds);
        Collections.sort(evens);
        String str="";
        for(int i=0;i<inputs.length;i++){
            if(i%2==1) {
                str+=odds.get((i-1)/2);
            }else {
                str+=evens.get(i/2);
            }
        }
//         System.out.println(str);
        
        //step03
        String[] strs=str.split("");
        for(String item:strs){
            String item2="";
            //如果字母不在a-f之间,则直接输出
            if(item.matches("[g-zG-Z]")) {
                System.out.print(item);
                continue;
            }
            //如果是字母,先将十六进制转换为十进制
            if(item.matches("[a-fA-F]")){
                //十六进制转换为十进制
                int item10=Integer.valueOf(item,16);
                //十进制转换为二进制
                item2=Integer.toBinaryString(item10);
            }else if(item.matches("[0-9]")){
                item2=Integer.toBinaryString(Integer.parseInt(item));
            }
            //若二进制不足4位,则需要补充位数
           while(item2.length()<4){
               item2="0"+item2;
           }
            //翻转二进制
           String item2_revs= new StringBuilder(item2).reverse().toString();
            //转换为十进制
            int item10=Integer.valueOf(item2_revs,2);
            //转换为十六进制
            String item16=Integer.toHexString(item10);
            if(item16.matches("[a-fA-F]")) item16=item16.toUpperCase();
            System.out.print(item16);
        }
        
    }
}