import java.util.Scanner;
import java.util.*;
// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
// 注意 hasNext 和 hasNextLine 的区别
// while (in.hasNextInt()) { // 注意 while 处理多个 case
// int a = in.nextInt();
// int b = in.nextInt();
// System.out.println(a + b);
// }
String line = in.nextLine().replace(" ", "");
char[] charList = new char[line.length()];
List arr1 = new ArrayList<>();
List arr2 = new ArrayList<>();
for (int i = 0; i < line.length(); i++) {
if (i % 2 == 1) {
arr1.add(line.charAt(i));
continue;
}
if (i % 2 == 0) {
arr2.add(line.charAt(i));
continue;
}
}
Collections.sort(arr1);
Collections.sort(arr2);
for (int i = 0; i < arr2.size(); i++) {
charList[i * 2] = (char)arr2.get(i);
}
for (int i = 0; i < arr1.size(); i++) {
charList[i * 2 + 1] = (char)arr1.get(i);
}
String result = "";
for (int i = 0; i < charList.length; i++) {
char c = charList[i];
String s = String.valueOf(c);
if ((c >= 'a' && c <= 'f') || (c >= 'A' && c < 'F') || (c >= '1' &&
c <= '9')) {
s = reverse(charList[i]);
}
result += s;
}
System.out.print(result);
}
private static String reverse(char c) {
// String s = "";
char[] temp = new char[4];
String biary = Integer.toBinaryString(Integer.parseInt(String.valueOf(c), 16));
int len = biary.length();
for (int i = 0; i < 4 - len; i++) {
biary = "0" + biary;
}
for (int i = biary.length() - 1; i >= 0; i--) {
temp[3 - i] = biary.charAt(i);
}
return Integer.toHexString(Integer.parseInt(String.valueOf(temp), 2)).toUpperCase();
}
}