const rl = require("readline").createInterface({ input: process.stdin });
var iter = rl[Symbol.asyncIterator]();
const readline = async () => (await iter.next()).value;
void (async function () {
// Write your code here
let line = await readline();
let arr = line.replace(" ", "").split("");
let arr1 = []; //偶数
let arr2 = []; //奇数
for (let i = 0; i < arr.length; i++) {
if (i % 2 === 0) {
arr1.push(arr[i]);
} else arr2.push(arr[i]);
}
arr1.sort()
arr2.sort()
for (let i = 0; i < arr1.length; i++) {
if (!/[^A-Fa-f0-9]/.test(arr1[i])){
arr1[i].toUpperCase();
arr1[i] = parseInt(
parseInt(arr1[i], 16).toString(2).padStart(4,'0').split("").reverse().join(""),
2
).toString(16).toUpperCase();
}
}
for (let i = 0; i < arr2.length; i++) {
if (!/[^A-Fa-f0-9]/g.test(arr2[i])){
arr2[i].toUpperCase();
arr2[i] = parseInt(
parseInt(arr2[i], 16).toString(2).padStart(4,'0').split("").reverse().join(""),
2
).toString(16).toUpperCase();
}
}
let res = [];
for (let i = 0; i < arr1.length; i++) {
if (arr1[i] || arr2[i]) {
res.push(arr1[i]);
res.push(arr2[i]);
}
}
res = res.join("");
console.log(res);
})();