//include<stdio.h>
//
//int main()
//
//{
//
// int m,n,i,s=0,p=0,min=10000;
//
// scanf("%d %d",&n,&m);
//
// for(i=1; i<=10000; i++)
// {
// if(m>=i*i&&i*i>=n)
// {
// s+=i*i;
// if(i*i<=min)
// {
// min=i*i;
// }
// p=1;
// }
// if(p==-1)
// {
// p=0;
// }
//
// }
//
//
// printf("%d\n%d",s,min);
// return 0;
//}
//
//
//
/*
#include<stdio.h>
int main()
{
int N,i,count=0,n,m=0,sum=0;
scanf("%d",&N);
for(i=1; i<=N; i++)
{
scanf("%d",&n);
if(n==0)
{
m=0;
}
else
{
m++;
sum+=m;
}
}
printf("%d",sum);
return 0;
}
*/
#include<stdio.h>
int stack1[1000]= {0};
int stack2[1000]= {0};
int stack3[1000]= {0};
int top1=0, top2=0, top3=0;
int main()
{
top1 = top2 = top3 = 0;
char input1[1000] = {0};
char input2[1000] = {0};
int i, j, k, n, m, x, y, z=0;
scanf("%s %s", input1, input2);
for(i=0; i<strlen(input1); i++)
{
stack1[top1++] = input1[i]-'0';
}
for(i=0; i<strlen(input2); i++)
{
stack2[top2++] = input2[i]-'0';
}
while(1)
{
x=stack1[--top1];
y=stack2[--top2];
k=(x+y+z)%10;
z=(x+y+z)/10;
stack3[top3++] = k;
if(top1==0)
{
for(i=top1-1; i>=0; i--){
}
break;
}
if(top2==0)
{
for(i=top2-1; i>=0; i--){
}
break;
}
}
for(i=top3-1; i>=0; i--)
{
printf("%d ", stack3[i]);
}
return 0;
}