#include <iostream>
#include <string>
#include <algorithm>
using namespace std;
bool strSort(string& str)
{
string str1, str2;
for(unsigned i = 0; i < str.size(); ++i)
{
if(i & 0x01) str1 += str[i];
else str2 += str[i];
}
sort(str1.begin(), str1.end());
sort(str2.begin(), str2.end());
for(unsigned i = 0; i < str.size(); ++i)
{
if(i & 0x01) str[i] = str1[i / 2];
else str[i] = str2[i / 2];
}
return true;
}
void reverseC(char &c)
{
unsigned bit_l = 0x08, bit_r = 0x01;
char a = 0x00;
while(bit_l)
{
if(c & bit_l) a |= bit_r;
bit_l >>= 1;
bit_r <<= 1;
}
if(a >= 0 && a <= 9) a += '0';
else if(a >= 0x0A && a <= 0x0F) a = a - 0x0A + 'A';
c = a;
}
int main()
{
string str, str1, str2;
while(cin >> str1 >> str2)
{
str = str1 + str2;
strSort(str);
for(unsigned i = 0; i < str.size(); ++i)
{
if(str[i] >= '0' && str[i] <= '9')
{
str[i] = str[i] - '0';
reverseC(str[i]);
}
else if(str[i] >= 'a' && str[i] <= 'f')
{
str[i] = str[i] - 'a' + 10;
reverseC(str[i]);
}
else if(str[i] >= 'A' && str[i] <= 'F')
{
str[i] = str[i] - 'A' + 10;
reverseC(str[i]);
}
}
cout << str << endl;
str.clear();
str1.clear();
str2.clear();
}
return 0;
}