import java.util.*;
public class Main{
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
while(sc.hasNext()){
String str = sc.nextLine();
str = sort(str.replaceAll(" ",""));
String[] arr = str.split("");
StringBuilder sbr = new StringBuilder();
int n =0;
String strbin = null;
StringBuilder sb = new StringBuilder();
for(String s : arr){
if(s.matches("[0-9]")){
//先转为数字
n = Integer.parseInt(s);
//转为二进制字符串
strbin = Integer.toBinaryString(n);
//转为StringBuilder
sb.append(strbin);
if(strbin.length() < 4){
for(int i = 4;i>strbin.length();i--){
sb.insert(0,"0");
}
}
int p = Integer.parseInt(sb.reverse().toString(),2);
sbr.append(Integer.toHexString(p).toUpperCase());
}
else if(s.matches("[a-fA-F]")){
//先转为数字
n = Integer.parseInt(s,16);
//转为二进制字符串
strbin = Integer.toBinaryString(n);
//转为StringBuilder
sb.append(strbin);
int p = Integer.parseInt(sb.reverse().toString(),2);
sbr.append(Integer.toHexString(p).toUpperCase());
}else{
sbr.append(s);
}
sb.delete(0,sb.length());
}
System.out.println(sbr.toString());
}
}
//奇偶分开排序
private static String sort(String str){
ArrayList<Character> Jlist = new ArrayList<Character>();
ArrayList<Character> Olist = new ArrayList<Character>();
char[] arr = str.toCharArray();
for(int i=0;i<arr.length;i++){
if(i%2==0){
//偶数
Jlist.add(arr[i]);
}else{
Olist.add(arr[i]);
}
}
Jlist.sort((a,b) -> {return a-b;});
Olist.sort((a,b) -> {return a-b;});
StringBuilder sb = new StringBuilder();
for(int i=0;i<Jlist.size();i++){
sb.append(Jlist.get(i));
if(i<Olist.size()){
sb.append(Olist.get(i));
}
}
return sb.toString();
}
}