/*
高精度加法
案例
  129
+  12
-------
  141
*/
#include <iostream>
#include <vector>

using namespace std;
vector<int> add(vector<int> &A, vector<int> &B)
{
   vector<int> c; //定义int型vector容器,存储数字位
    int t = 0; 
    //如果i小于A字符串的长度,或者B的长度,执行下列循环
    for(int i = 0;i < A.size() || i < B.size();i++){
        if(i < A.size()) t+=A[i]; // 如i = 0的时候,t = 9
        if(i < B.size()) t+= B[i];// i = 0 的时候 ,t = 9 + 2 = 11
        c.push_back(t%10); //把个位存储到c容器中
        t /= 10; //如果t>10,那么这样就可以求到进位1,加入到第二次计算中
    }
    if(t) c.push_back(1);//如果有剩余进位,那么把它加入到c容器中
    return c;//返回C容器
}

int main(void)
{
    string a, b;
    vector<int> A, B;
    cin >> a >> b;
    for (int i = a.size() - 1; i >= 0; i--)
        A.push_back(a[i] - '0'); //字符'number' - '0' 等于 int number
    for (int i = b.size() - 1; i >= 0; i--)
        B.push_back(b[i] - '0');
    vector<int> c = add(A, B);
    for (int i = c.size() - 1; i >= 0; i--)
        cout << c[i];
}