#include <iostream>
using namespace std;
const int maxn=1000;
struct largeNum{
int digit[maxn];
int length;
largeNum(){
length=0;
}
largeNum(string x){
length=0;
for(int i=x.length()-1;i>=0;i--){
digit[length++]=x[i]-'0';
}
}
largeNum operator+ (largeNum y) ;
};
largeNum largeNum:: operator+ (largeNum y) {
if(length<y.length){
for(int i=length;i<y.length;i++){
digit[length++]=0;
}
}
else {
for(int i=y.length;i<length;i++){
y.digit[y.length++]=0;
}
}
largeNum r;
int carry=0;
int i;
for(i=0;i<length && i<y.length;i++){
int c=digit[i]+y.digit[i]+carry;
if(c>9){
c-=10;
carry=1;
}
else carry=0;
r.digit[r.length++]=c;
}
if(carry==1) r.digit[r.length++]=1;
return r;
}
void outplargenum(largeNum x){
for(int i=x.length-1;i>=0;i--){
cout<<x.digit[i];
}
cout<<endl;
}
int main() {
string x,y;
while(cin>>x>>y){
largeNum a=largeNum(x)+largeNum(y);
outplargenum(a);
}
}