#include <iostream>
#include <vector>
#include <cstdlib>
 
const int base = 1000*1000*1000;
 
using namespace std;
 
vector <int> convert (string s)
{
    vector <int> vec1;
 
    for (int i=(int)s.length(); i>0; i-=9)
        if (i < 9)
            vec1.push_back (atoi (s.substr (0, i).c_str()));
        else
            vec1.push_back (atoi (s.substr (i-9, 9).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;
        if (carry)  vec1[i] -= base;
    }
 
for (int i=vec1.size()-1; i>=0; i--)
     cout << vec1[i];
 
    return 0;
}