#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; }