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 = 0i < arr.lengthi++) {
    if (i % 2 === 0) {
      arr1.push(arr[i]);
    } else arr2.push(arr[i]);
  }
  arr1.sort()
  arr2.sort()

  for (let i = 0i < arr1.lengthi++) {
    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 = 0i < arr2.lengthi++) {
    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 = 0i < arr1.lengthi++) {
    if (arr1[i] || arr2[i]) {
      res.push(arr1[i]);
      res.push(arr2[i]);
    }
  }
  res = res.join("");
  console.log(res);
})();