#include <iostream>
#include <vector>
#include <string>
#include <bits/stdc++.h>
using namespace std;
string str,str1,str2,s1;
string brev(string b){
string s="";
for(int i=3;i>=0;i--){
s+=b[i];
}
return s;
}
int main() {
cin >>str1>>str2;
str=str1+str2;
int len=str.size();
str1="";
str2="";
for(int i=0;i<str.size();i+=2){
str1+=str[i];
}
for(int i=1;i<str.size();i+=2){
str2+=str[i];
}
sort(str1.begin(),str1.end());
sort(str2.begin(),str2.end());
int j=0;
for(int i=0;i<str.size();i+=2){
str[i]=str1[j];j++;
}
j=0;
for(int i=1;i<str.size();i+=2){
str[i]=str2[j];j++;
}
int coun=0;
for(int i=0;i<len;i++){
if(str[i]>='0'&&str[i]<='9'){
int num1=str[i]-'0';
bitset<4> b1(num1);
string m1=brev(b1.to_string());
int oc=0;
for(int x=0;x<m1.size();x++){
if(m1[x]=='1'){
oc+=pow(2,3-x);
}
}
cout<<hex<<uppercase<<oc;
}else if(str[i]>='a'&&str[i]<='f'){
int num2=str[i]-'a'+10;
bitset<4> b2(num2);
string m2=brev(b2.to_string());
int oc=0;
for(int x=0;x<m2.size();x++){
if(m2[x]=='1'){
oc+=pow(2,3-x);
}
}
cout<<hex<<uppercase<<oc;
}else if(str[i]>='A'&&str[i]<='F'){
int num3=str[i]-'A'+10;
bitset<4> b3(num3);
string m3=brev(b3.to_string());
int oc=0;
for(int x=0;x<m3.size();x++){
if(m3[x]=='1'){
oc+=pow(2,3-x);
}
}
cout<<hex<<uppercase<<oc;
}else{
cout<<str[i];
}
}
}
// 64 位输出请用 printf("%lld")