#include<stdio.h>
#include<string.h>
void reverse(char A[]){
for(int i=0,j=strlen(A)-1;i<j;i++,j--){
char tmp=A[i];
A[i]=A[j];
A[j]=tmp;
}
}
void Add(char A[],char B[],char ans[]){
int la=strlen(A);
int lb=strlen(B);
reverse(A);
reverse(B);///逆置
while(la>lb)B[lb++]='0';///补零
while(lb>la)A[la++]='0';
for(int i=0;i<la;i++){
if(A[i]>='0' && A[i]<='9')
ans[i]=A[i]-'0';
else if(A[i]>='a' && A[i]<='z')
ans[i]=A[i]-'a'+10;
else ans[i]=A[i]-'A'+10;
}
for(int i=0;i<la;i++){
if(B[i]>='0' && B[i]<='9')
ans[i]+=B[i]-'0';
else if(B[i]>='a' &&B[i]<='z')
ans[i]+=B[i]-'a'+10;
else ans[i]+=B[i]-'A'+10;
ans[i]%=16;
if(ans[i]<10) ans[i]+='0';
else ans[i]+=-10+'A';
}
la--;
while(la>0 && ans[la]=='0')
la--;
ans[++la]=0;
reverse(ans);
}
int main(){
char A[100],B[100],ans[100];
while(~scanf("%s%s",A,B)){
Add(A,B,ans);
printf("%s\n",ans);
}
return 0;
}
/*两个十六进制数相加,可能存在大小写,
相加时丢掉进位,输出时不要输出前导0
Eg:
input:Ba8 52A output:C2*/
///Ab325d35f 2354df3
///f53d523bA 3fd453200
///f+3=18%16=2 5+f=1+15+5
///A+0=10
思路:逆置 补零 相加