#include <iostream>
#include <iomanip>
#include <vector>
#include <cstdlib>
 
const int base = 1000*1000*1000;
 
using namespace std;
 
vector <int> convert (string s)
{
    vector <int> vec1;
    size_t i = s.length();
    for (; i>9; i-=9)
        vec1.push_back (atoi (s.substr (i-9, 9).c_str()));
    vec1.push_back (atoi (s.substr (0, i).c_str()));
    return vec1;
}
 
int main()
{
    string a, b;
    vector<int> vec1;
    vector<int> vec2;
    cin >> a >> b;
    vec1=convert(a);
    vec2=convert(b);
 
     //for (int i=0; i<vec1.size(); i++)
    //cout << vec1[i] << " ";
    int carry = 0;
    for (size_t i=0; i<max(vec1.size(),vec2.size()) || carry; ++i)
    {
        if (i == vec1.size())
            vec1.push_back (0);
        vec1[i] += carry + (i < vec2.size() ? vec2[i] : 0);
        carry = (vec1[i] >= base) ? 1 : 0;
        if (carry)  vec1[i] -= base;
    }

if (vec1.size() > 0) cout << vec1[vec1.size() - 1];
for (int i=vec1.size()-2; i>=0; i--)
     cout << setfill('0') << setw(9) << vec1[i];
 
    return 0;
}