#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+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CiAKIApzdHJpbmcgYWRkKHN0cmluZyBhLCBzdHJpbmcgYikKewogICBpbnQgYWw9YS5zaXplKCktMTsKICAgaW50IGJsPWIuc2l6ZSgpLTE7CiAKICAgaW50IGNhcnJ5PTA7CiAgIHN0cmluZyByZXN1bHQ9IiI7CiAKICAgd2hpbGUoYWw+PTAgJiYgYmw+PTApCiAgICB7CiAgICBpbnQgdGVtcCA9IChpbnQpKGFbYWxdIC0gJzAnKSArIChpbnQpKGJbYmxdIC0gJzAnKSArIGNhcnJ5IDsKICAgIGNhcnJ5ID0gMDsKICAgIGlmKHRlbXAgPiA5ICkKICAgIHsKICAgICAgICBjYXJyeT0xOwogICAgICAgIHRlbXA9dGVtcC0xMDsKICAgIH0KIAogICAgcmVzdWx0Kz1jaGFyKHRlbXAgKyAnMCcpOwogICAgYWwtLTsKICAgIGJsLS07CiAgICB9CiAKICAgd2hpbGUoYWw+PTApCiAgICB7CiAgICAgICAgaW50IHRlbXAgPSAoaW50KShhW2FsXSAtICcwJykgKyBjYXJyeSA7CiAgICAgICAgY2FycnkgPSAwOwogICAgICAgIGlmKHRlbXA+OSkKICAgICAgICB7CiAgICAgICAgICAgIGNhcnJ5PTE7CiAgICAgICAgICAgIHRlbXA9dGVtcCUxMDsKICAgICAgICB9CiAKICAgICAgICByZXN1bHQrPWNoYXIodGVtcCArICcwJyk7CiAgICAgICAgYWwtLTsKICAgIH0KIAogICB3aGlsZShibD49MCkKICAgIHsKICAgICAgICBpbnQgdGVtcCA9IChpbnQpKGJbYmxdIC0gJzAnKSArIGNhcnJ5IDsKICAgICAgICBjYXJyeSA9IDA7CiAgICAgICAgaWYodGVtcD45KQogICAgICAgIHsKICAgICAgICAgICAgY2Fycnk9MTsKICAgICAgICAgICAgdGVtcD10ZW1wJTEwOwogICAgICAgIH0KIAogICAgICAgIHJlc3VsdCs9Y2hhcih0ZW1wICsgJzAnKTsKICAgICAgICBibC0tOwogICAgfQogCmlmKGNhcnJ5KQogICAgcmVzdWx0Kz0iMSI7CiAKc3RyaW5nIGFkZGl0aW9uPSIiOwogCmZvcihpbnQgaT1yZXN1bHQuc2l6ZSgpLTE7aT49MDtpLS0pCiAgICBhZGRpdGlvbis9cmVzdWx0W2ldOyAgIC8vIHJldmVyc2luZyB0aGUgYW5zd2VyCiAKcmV0dXJuIGFkZGl0aW9uOwp9CiAKc3RyaW5nIHRyaW0oc3RyaW5nIGEpICAgLy8gZm9yIHJlbW92aW5nIGxlYWRpbmcgMHMKewogICBzdHJpbmcgcmVzPSIiOwogICBpbnQgaT0wOwogCiAgIHdoaWxlKGFbaV09PScwJykKICAgICAgaSsrOwogCiAgIGZvcig7aTxhLnNpemUoKTtpKyspCiAgICByZXMrPWFbaV07CiAKICAgcmV0dXJuIHJlczsKfQogCiAKaW50IG1haW4oKQp7CiAgICBzdHJpbmcgYTsKICAgIHN0cmluZyBiOwogCiAgICBjaW4+PmE+PmI7CiAKICAgIGNvdXQ8PHRyaW0oYWRkKGEsYikpPDxlbmRsOwp9