#include<string.h>
#define max(a,b) a>b?a:b
#define min(a,b) a<b?a:b
int main()
{
int i,num;
int num1, num2;
int arr1[2000] = { 0 }, arr2[2000] = { 0 }, arr3[2000] = {0};
char str[2000] = {0};
scanf("%s",str);
num1=strlen(str);
for (i = 0; i < num1; i++)
arr1[i] = str[num1-1-i]-'0';
scanf("%s",str);
num2=strlen(str);
for (i = 0; i < num2; i++)
arr2[i] = str[num2 - i - 1] - '0';
//此时已经存了两个正向整形数了
for (i = 0; i < max(num1, num2); i++) {
arr3[i] = arr1[i] + arr2[i];
}
if (arr1[max(num1, num2)] != 0)
num = max(num1, num2) + 1;
for(i=0;i<num;i++)
if (arr3[i] > 9) {
arr3[i] %= 10;
arr3[i + 1] += 1;
}
for (i = 0; i < num; i++)
printf("%d", arr3[i]);
getchar();
getchar();
return 0;
}