#include<iostream>
#include<vector>
#include<string>
using namespace std;
typedef vector<int> ve;//用ve代替vector<int>,避免后续麻烦
ve add(ve &A, ve &B)
{
ve C;
int t = 0;//用来储存每次相加的值
for (int i = 0; i < A.size() || i < B.size(); i++)
{
if (i < A.size()) t += A[i];
if (i < B.size()) t += B[i];
C.push_back(t % 10);//只保留个位数
t /= 10;//非个位数则进位
}
if (t) C.push_back(t);//如果t不等于零,则代表还有最高的一位没放到C里,如果t等于0,则不用放
return C;
}
int main()
{
string sum1, sum2;//因为数据太大,所以用string定义来输入
cin >> sum1 >> sum2;
ve A, B;
//循环,将sum1,sum2中的值放入A,B中,倒着放,因为加法运算是从各位开始加的
for (int i = sum1.size() - 1; i >= 0; i--) A.push_back(sum1[i] - '0');
for (int i = sum2.size() - 1; i >= 0; i--) B.push_back(sum2[i] - '0');
ve res = add(A, B);
for (int i = res.size() - 1; i >= 0; i--)//倒着输出,因为储存是高位在后,低位在前,输出应高位在前,低位在后
{
cout << res[i];
}
return 0;
}