import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
// 注意 hasNext 和 hasNextLine 的区别
while (in.hasNextLine()) { // 注意 while 处理多个 case
String a = in.nextLine();
String b = a.replaceAll(" ", "");
char[] c = b.toCharArray();
List<Character> odds = new ArrayList<>();
List<Character> evens = new ArrayList<>();
for (int i = 0; i < c.length; i++) {
if (i % 2 == 0) {
odds.add(c[i]);
} else {
evens.add(c[i]);
}
}
evens.sort(Comparator.comparingInt(j -> j));
odds.sort(Comparator.comparingInt(j -> j));
for (int i = 0; i < c.length; i++) {
if (i % 2 == 0) {
c[i] = odds.get(i / 2);
} else {
c[i] = evens.get((i - 1) / 2);
}
}
StringBuilder sb = new StringBuilder();
for (int i = 0; i < c.length; i++) {
StringBuilder sb0=new StringBuilder();
if (String.valueOf(c[i]).matches("[A-Fa-f]")) {
String d = Integer.toBinaryString(Integer.parseInt(String.valueOf(c[i]), 16));
if (d.length()<4) {
sb0.append("0000",0,4-d.length());
}
String e = String.valueOf(sb0.append(d).reverse());
sb.append(Integer.toHexString(Integer.parseInt(e, 2)).toUpperCase());
} else if (String.valueOf(c[i]).matches("[0-9]")) {
String d = Integer.toBinaryString(Integer.parseInt(String.valueOf(c[i])));
if (d.length()<4) {
sb0.append("0000",0,4-d.length());
}
String e = String.valueOf(sb0.append(d).reverse());
sb.append(Integer.toHexString(Integer.parseInt(e, 2)).toUpperCase());
} else {
sb.append(c[i]);
}
}
System.out.println(sb);
}
}
}