#define SIZE 100001
using namespace std;
void read(string& a,int x[]){
reverse(a.begin(),a.end());
for(int i=0;i<a.size();i++)x[i]=a[i]-'0';
return;
}
string write(int x[]){
string a="";
int mx=SIZE-2;
while(!x[mx])mx--;
for(int i=0;i<=mx;i++)a+=x[i]+'0';
reverse(a.begin(),a.end());
return a;
}
void JIA(int c[],int w[]){
for(int i=0;i<SIZE;i++){
c[i]+=w[i];
if(c[i]>9)c[i]-=10,c[i+1]++;
}
return;
}
void JIAN(int c[],int w[]){
for(int i=0;i<SIZE;i++){
c[i]-=w[i];
if(c[i]<0)c[i]+=10,c[i+1]--;
}
return;
}
void CHENG(int c[],int w[]){
int nw[]={};
for(int i=0;i<SIZE;i++){
for(int j=0;j<SIZE;j++){
nw[i+j]+=c[i]*w[j];
}
}
for(int i=0;i<SIZE;i++){
while(nw[i]>=10)nw[i]-=10,nw[i+1]++;
}
for(int i=0;i<SIZE;i++)c[i]=nw[i];
return;
}
bool bigger(int c[],int w[]){
int lc,lw;
lc=lw=SIZE;
while(!c[lc])lc--;
lc++;
while(!w[lw])lw--;
lw++;
if(lc!=lw){
return lc>lw;
}
for(int i=lw;i>=0;i--){
if(c[i]!=w[i])return c[i]>w[i];
}
return 0;
}
bool same(int c[],int w[]){
int lc,lw;
lc=lw=SIZE;
while(!c[lc])lc--;
lc++;
while(!w[lw])lw--;
lw++;
if(lc!=lw){
return 0;
}
for(int i=lw;i>=0;i--){
if(c[i]!=w[i])return 0;
}
return 1;
}
void CHU(int c[],int w[]){
int lc,lw;
lc=lw=SIZE;
while(!c[lc])lc--;
lc++;
while(!w[lw])lw--;
lw++;
int ans[]={};
for(int i=lc-lw;i>=0;i--){
int lit[]={};
for(int j=i;j<i+lw;j++)lit[j]=c[j];
while(bigger(c,lit)||same(c,lit)){
ans[i]++;
JIAN(c,lit);
}
}
for(int i=0;i<SIZE;i++)c[i]=ans[i];
}
int main(){
string a="",b="";
int x[SIZE]={},y[SIZE]={};
cin>>a>>b;
int t[SIZE]={};
read(a,x);
read(b,y);
read(a,t);JIA(t,y);
cout<<write(t)<<endl;
return 0;
}