/*
#include <stdio.h>
int stack[100000];
int top=-1;
void push (int data)
{
top++;
stack[top]=data;
}
int pop()
{
return stack[top--];
}
int main()
{
int k,i,n;
int sum=0;
scanf("%d",&k);
for(i=0;i<k;i++)
{
scanf("%d",&n);
if(n==0)
{
sum-=pop();
}
else
{
push(n);
sum+=n;
}
}
printf("%d",sum);
return 0;
}
*/
/*
#include <stdio.h>
int stack[10000];
int t=-1;
char push (int data)
{
t++;
stack[t]=data;
}
char pop()
{
t--;
if(t<=-1)
{
t=-1;
}
}
void top()
{
if(t==-1)
{
printf("-1\n");
}
else
{
printf("%d\n",stack[t]);
}
}
char size()
{
printf("%d\n",t+1);
}
char empty()
{
if(t<=-1)
{
printf("true\n");
}
else
{
printf("false\n");
}
}
int main()
{
int n,i,j;
char str[100]={};
scanf("%d ",&n);
for(i=0;i<n;i++)
{
gets(str);
if(str[0]=='t')
{
top();
}
else if (str[0]=='s')
{
size();
}
else if(str[0]=='e')
{
empty();
}
else if (str[0]=='p')
{
if (str[1]=='u')
{
if(str[8]!=' '&&str[8]!=')')
{
push ((str[6]-'0')*100+(str[7]-'0')*10+str[8]-'0');
}
else
{
if(str[7]!=' ')
{
push ((str[6]-'0')*10+(str[7]-'0'));
}
else
{
push (str[6]-'0');
}
}
}
else
{
pop();
}
}
}
return 0;
}
*/
#include <stdio.h>
#include <string.h>
int stack[100000];
int top=-1;
void push1(int data)
{
top++;
stack[top]=data;
}
int pop1()
{
return stack[top--];
}
void push2(int data)
{
top++;
stack[top]=data;
}
int pop2()
{
return stack[top--];
}
int main()
{
int i,j;
int str1[100]={},str2[100]={},str3[100]={};
scanf("%s %s",str1,str2);
if(strlen(str1)>strlen(str2))
{
for(i=0;i<strlen(str1);i++)
{
push1(str1[i]);
}
for(i=0;i<strlen(str1)-strlen(str2);i++)
{
push2(0);
}
for(i=strlen(str1)-strlen(str2)+1;i<strlen(str1);i++)
{
push2(str2[i]);
}
for(i=0;i<strlen(str1);i++)
{
str3[i]=(pop1()+pop2());
}
printf("%s",str3);
}
else
{
for(i=0;i<strlen(str2);i++)
{
push2(str2[i]);
}
for(i=0;i<strlen(str2)-strlen(str1);i++)
{
push1(0);
}
for(i=strlen(str2)-strlen(str1)+1;i<strlen(str1);i++)
{
push1(str1[i]);
}
for(i=0;i<strlen(str2);i++)
{
str3[i]=(pop1()+pop2());
}
printf("%s",str3);
}
return 0;
}