#include<bits/stdc++.h>
using namespace std;
char c[105],a[105],b[105];
string a1="",b1="";
string t;
//十年OI一场空,不开全局见祖宗。
int main()
{
cin>>a1>>b1;
//因为系统不兼容gets,所以用字符串
for(int i=0;i<a1.size();i++) a[i]=a1[a1.size()-i-1];
for(int i=0;i<b1.size();i++) b[i]=b1[b1.size()-i-1];
//字符串转字符数组
int n=min(strlen(a),strlen(b)),n1=max(strlen(a),strlen(b)),carry=0,cnt=0;
//解决较短数字区域
for(int i=0;i<n;i++)
{
//核心算法
c[i] = (b[i] - '0' + a[i] - '0' + carry) % 10 + '0';
carry = (b[i] - '0' + a[i] - '0' + carry) / 10;
}
//解决其他区域
if(n==strlen(a))
{
for(int i=n;i<strlen(b);i++)
{
c[i] = (b[i] - '0' + carry) % 10 + '0';
carry = (b[i] - '0' + carry) / 10;
}
//进位
if(carry!=0)c[strlen(b)]='1';
}
else
{
for(int i=n;i<strlen(a);i++){
c[i]= (a[i] - '0' + carry) % 10 + '0';
carry= (a[i]- '0' + carry) / 10;
}
//同上
if(carry!=0)c[strlen(a)]='1';
}
//输出
//"n1-1+carry"用于解决下标问题
for(int i=n1-1+carry;i>=0;i--)
{
//if(c[i]==' ')continue;
cout<<c[i];
}
//养成好习惯
return 0;
}