#include<iostream>
using namespace std;
string add(string a, string b)
{
int al=a.size()-1;
int bl=b.size()-1;
int carry=0;
string result="";
while(al>=0 && bl>=0)
{
int temp = (int)(a[al] - '0') + (int)(b[bl] - '0') + carry ;
carry = 0;
if(temp > 9 )
{
carry=1;
temp=temp-10;
}
result+=char(temp + '0');
al--;
bl--;
}
while(al>=0)
{
int temp = (int)(a[al] - '0') + carry ;
carry = 0;
if(temp>9)
{
carry=1;
temp=temp%10;
}
result+=char(temp + '0');
al--;
}
while(bl>=0)
{
int temp = (int)(b[bl] - '0') + carry ;
carry = 0;
if(temp>9)
{
carry=1;
temp=temp%10;
}
result+=char(temp + '0');
bl--;
}
if(carry)
result+="1";
string addition="";
for(int i=result.size()-1;i>=0;i--)
addition+=result[i]; // reversing the answer
return addition;
}
string trim(string a) // for removing leading 0s
{
string res="";
int i=0;
while(a[i]=='0')
i++;
for(;i<a.size();i++)
res+=a[i];
return res;
}
int main()
{
string a;
string b;
cin>>a>>b;
cout<<trim(add(a,b))<<endl;
}
I2luY2x1ZGU8aW9zdHJlYW0+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgoKc3RyaW5nIGFkZChzdHJpbmcgYSwgc3RyaW5nIGIpCnsKICAgaW50IGFsPWEuc2l6ZSgpLTE7CiAgIGludCBibD1iLnNpemUoKS0xOwoKICAgaW50IGNhcnJ5PTA7CiAgIHN0cmluZyByZXN1bHQ9IiI7CgogICB3aGlsZShhbD49MCAmJiBibD49MCkKICAgIHsKICAgIGludCB0ZW1wID0gKGludCkoYVthbF0gLSAnMCcpICsgKGludCkoYltibF0gLSAnMCcpICsgY2FycnkgOwogICAgY2FycnkgPSAwOwogICAgaWYodGVtcCA+IDkgKQogICAgewogICAgICAgIGNhcnJ5PTE7CiAgICAgICAgdGVtcD10ZW1wLTEwOwogICAgfQoKICAgIHJlc3VsdCs9Y2hhcih0ZW1wICsgJzAnKTsKICAgIGFsLS07CiAgICBibC0tOwogICAgfQoKICAgd2hpbGUoYWw+PTApCiAgICB7CiAgICAgICAgaW50IHRlbXAgPSAoaW50KShhW2FsXSAtICcwJykgKyBjYXJyeSA7CiAgICAgICAgY2FycnkgPSAwOwogICAgICAgIGlmKHRlbXA+OSkKICAgICAgICB7CiAgICAgICAgICAgIGNhcnJ5PTE7CiAgICAgICAgICAgIHRlbXA9dGVtcCUxMDsKICAgICAgICB9CgogICAgICAgIHJlc3VsdCs9Y2hhcih0ZW1wICsgJzAnKTsKICAgICAgICBhbC0tOwogICAgfQoKICAgd2hpbGUoYmw+PTApCiAgICB7CiAgICAgICAgaW50IHRlbXAgPSAoaW50KShiW2JsXSAtICcwJykgKyBjYXJyeSA7CiAgICAgICAgY2FycnkgPSAwOwogICAgICAgIGlmKHRlbXA+OSkKICAgICAgICB7CiAgICAgICAgICAgIGNhcnJ5PTE7CiAgICAgICAgICAgIHRlbXA9dGVtcCUxMDsKICAgICAgICB9CgogICAgICAgIHJlc3VsdCs9Y2hhcih0ZW1wICsgJzAnKTsKICAgICAgICBibC0tOwogICAgfQoKaWYoY2FycnkpCiAgICByZXN1bHQrPSIxIjsKCnN0cmluZyBhZGRpdGlvbj0iIjsKCmZvcihpbnQgaT1yZXN1bHQuc2l6ZSgpLTE7aT49MDtpLS0pCiAgICBhZGRpdGlvbis9cmVzdWx0W2ldOyAgIC8vIHJldmVyc2luZyB0aGUgYW5zd2VyCgpyZXR1cm4gYWRkaXRpb247Cn0KCnN0cmluZyB0cmltKHN0cmluZyBhKSAgIC8vIGZvciByZW1vdmluZyBsZWFkaW5nIDBzCnsKICAgc3RyaW5nIHJlcz0iIjsKICAgaW50IGk9MDsKCiAgIHdoaWxlKGFbaV09PScwJykKICAgICAgaSsrOwoKICAgZm9yKDtpPGEuc2l6ZSgpO2krKykKICAgIHJlcys9YVtpXTsKCiAgIHJldHVybiByZXM7Cn0KCgppbnQgbWFpbigpCnsKICAgIHN0cmluZyBhOwogICAgc3RyaW5nIGI7CgogICAgY2luPj5hPj5iOwoKICAgIGNvdXQ8PHRyaW0oYWRkKGEsYikpPDxlbmRsOwp9CgoKCgo=