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);
}
}
}