#include <iostream>
#include <string>
#include <vector>
#include <algorithm>
#include <map>

using namespace std;
// 处理 0-9、a-f、A-F 的转化
static char transfromChar(char c) {
    int num = 0, sum = 0;
    if (isdigit(c)) num = c - '0';
    else if (islower(c)) num = c - 'a' + 10;
    else if (isupper(c)) num = c - 'A' + 10;

    // 翻转
    // 第 1 位 左移 3 到第 4位
    sum += ((num & 1 ) << 3);
    // 第 2 位 左移 1 到第 3位
    sum += ((num & 2) << 1);

    // 第 3 位 右移 1 到第 2位
    sum += ((num & 4) >> 1);
    // 第 4 位 右移 3 到第 1位
    sum += ((num & 8) >> 3);

    // 得到的 sum 为 十进制,转化为 16进制 数字或字母;
    if (sum < 10)
        return sum + '0';
    else
        return (sum - 10) + 'A';
}


int main() {
    string line;

    getline(cin, line);

    string u;
    // 合并字符串
    // 移除空格;
    line.erase(remove(line.begin(), line.end(), ' '), line.end());

    // 排序 获得 u′
    for (int i = 0; i < line.size(); i++) {
        for (int j = i + 2; j < line.size(); j = j + 2) {
            if (line[i] > line[j]) {
                char c = line[i];
                line[i] = line[j];
                line[j] = c;
            }
        }
    }

    //cout << "u'=" << line << endl;

    // 最后一步 翻转 + 输出大写字母
    for (auto c : line) {
        if ((c >= '0' && c <= '9') || (c >= 'a' && c <= 'f') || (c >= 'A' &&
                c <= 'F')) {
            cout << transfromChar(c);
        } else {
            cout << c;
        }

    }

    cout << endl;


    return 0;
}