/*
#include <stdio.h>
#include <stdlib.h>
int main()
{
printf("Hello world!\n");
return 0;
}
*/
/*
#include <stdio.h>
int a[10001];
int n, i, j, temp;
int main() {
scanf("%d", &n);
for (i=1; i<=n; i++)
scanf("%d", &a[i]);
for(i=1; i<n; i++)
{
for(j=1;j<n;j++)
{
if (a[j] > a[j+1])
{
temp = a[j];
a[j] = a[j+1];
a[j+1] = temp;
}
}
}
for (i = 1; i <= n; i++)
printf("%d\n", a[i]);
return 0;
}
*/
#include <stdio.h>
#define size 1000
int stack[size]={};
int stack1[size]={};
int top1;
int top;
//
int isfull()
{
if(size-1==top)
{
return 1;
}
else
{
return 0;
}
}
int isempty()
{
if(top==-1)
{
return 1;
}
else
return 0;
}
void init()
{
top=-1;
}
void push(int data)
{
if(isfull())
{
return 0;
}
top++;
stack[top]=data;
}
int pop()
{
int k;
if(isempty())
{
return 0;
}
k=stack[top];
stack[top]=0;
top--;
return k;
}
//
int isfull1()
{
if(size-1==top1)
{
return 1;
}
else
{
return 0;
}
}
int isempty1()
{
if(top1==-1)
{
return 1;
}
else
return 0;
}
void init1()
{
top1=-1;
}
void push1(int data)
{
if(isfull1())
{
return 0;
}
top1++;
stack1[top1]=data;
}
int pop1()
{
int k;
if(isempty1())
{
return 0;
}
k=stack1[top1];
stack1[top1]=0;
top1--;
return k;
}
int main()
{
char str1[100],str2[100];
int i,k,n,m,l=0,data1=0;
init();
init1();
scanf("%s %s",str1,str2);
for(i=0; i<strlen(str1); i++)
{
push(str1[i]-'0');
}
for(i=0; i<strlen(str2); i++)
{
push1(str2[i]-'0');
}
for(i=0; i<strlen(str2);i++)
{
if(){
if(strlen(str1)>strlen(str2)){
strlen(str1)-pop()=n;
printf("%d",str1-pop()+data1);
}
if(strlen(str1)<strlen(str2)){
strlen(str2)-pop1()=m;
printf("%d",str2-pop1()+data1);
}
}
k=pop()+pop1()+l;
l=k/10;
k=k%10;
data1=data1*10+k;
}
printf("%d",data1);
}