#include<iostream>
#include<string>
#include<algorithm>
#include<sstream>
#include<bitset>
using namespace std;
char bitToHex(string s){
int t = (s[0]*1-48)*8+(s[1]*1-48)*4+(s[2]*1-48)*2+(s[3]*1-48)*1;
char ch=' ';
switch(t){
case 10:
ch='A';
break;
case 11:
ch='B';
break;
case 12:
ch='C';
break;
case 13:
ch='D';
break;
case 14:
ch='E';
break;
case 15:
ch='F';
break;
default:
ch=char(t+48);
}
return ch;
}
int main(){
string str,s1,s2;
while(cin>>str>>s1){
str.append(s1);
s1.clear();
for(int i=1;i<str.size();i+=2){
stringstream ss;
ss<<str[i];
s1.append(ss.str());
}
for(int i=0;i<str.size();i+=2){
stringstream ss;
ss<<str[i];
s2.append(ss.str());
}
sort(s1.begin(),s1.end());
sort(s2.begin(),s2.end());
int size=str.size();
str.clear();
for(int i=0;i<size;i++){
if(i%2==0){
stringstream ss;
ss<<s2[i/2];
str.append(ss.str());
}
else{
stringstream ss;
ss<<s1[i/2];
str.append(ss.str());
}
}
string num="0123456789ABCDEF";
for(int i=0;i<str.size();i++){
if(isdigit(str[i]) || (str[i]>='A'&&str[i]<='F') ||(str[i]>='a'&&str[i]<='f')){
stringstream ss;
ss<<bitset<4> (num.find(toupper(str[i])));
string s=ss.str();
reverse(s.begin(),s.end());
cout<<bitToHex(s);
}
else
cout<<str[i];
}
str.clear();
s1.clear();
s2.clear();
cout<<endl;
}
return 0;
}