#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);
    }
}