#include <iostream>
#include <cstring>
using namespace std;
const int maxn=100;
struct longfloat{
    int integer[maxn];
    int decimal[maxn];
    int ilength;
    int dlength;
    longfloat(){
        ilength=0;
        dlength=0;
    }
    longfloat(string x){
        ilength=0;
        dlength=0;
        int k=x.find('.');
        for(int i=k-1;i>=0;i--){
            integer[ilength++]=x[i]-'0';
        }
        for(int i=x.length()-1;i>k;i--){
            decimal[dlength++]=x[i]-'0';
        }
    };
    longfloat operator+ (longfloat y) {
        longfloat r;
        int carry=0;
        int i=0;
        int div;
        if(dlength>y.dlength) {
            div=dlength-y.dlength;
            for(int i=y.dlength-1;i>=0;i--){
                y.decimal[i+div]=y.decimal[i];
            }
            for(int i=0;i<div;i++) y.decimal[i]=0;
            y.dlength+=div;
            }
        else {
            div=y.dlength-dlength;
            for(int i=dlength-1;i>=0;i--){
                decimal[i+div]=decimal[i];
            }
            for(int i=0;i<div;i++) decimal[i]=0;
            dlength+=div;
        }
         while(i<dlength && i<y.dlength){
            r.decimal[r.dlength++]=decimal[i]+y.decimal[i]+carry;
            if(r.decimal[i]>9){
                r.decimal[i]-=10;
                carry=1;
            }
            else carry=0;
            i++;
        }
        if(i==dlength){
            while(i<y.dlength){
                r.decimal[r.dlength++]=y.decimal[i]+carry;
                if(r.decimal[i]>9){
                    r.decimal[i]-=10;
                    carry=1;
                }
                else carry=0;
                i++;
            }
        }
        else {
            while(i<dlength){
                r.decimal[r.dlength++]=decimal[i]+carry;
                if(r.decimal[i]>9){
                    r.decimal[i]-=10;
                    carry=1;
                }
                else carry=0;
                i++;
            }
        }
        //deal with integer
        i=0;
        while(i<ilength && i<y.ilength){
            r.integer[i]=integer[i]+y.integer[i]+carry;
            r.ilength++;
            if(r.integer[i]>9){
                r.integer[i]-=10;
                carry=1;
            }
            else carry=0;
            i++;
        }
        if(i==ilength){
            while(i<y.ilength){
                r.integer[r.ilength++]=y.integer[i]+carry;
                if(r.integer[i]>9){
                    r.integer[i]-=10;
                    carry=1;
                }
                else carry=0;
                i++;
            }
        }
        else{
            while(i<ilength) {
            r.integer[r.ilength++]=integer[i]+carry;
            if(r.integer[i]>9){
                    r.integer[i]-=10;
                    carry=1;
                }
                else carry=0;
            i++;
            }
        }
        if(carry==1) r.integer[r.ilength++]=1;
        return r;
    }
};
void outp(longfloat x){
    for(int i=x.ilength-1;i>=0;i--){
        cout<<x.integer[i];
    }
    cout<<'.';
    for(int i=x.dlength-1;i>=0;i--){
        cout<<x.decimal[i];
    }
    cout<<endl;
}
int main() {
    string x,y;
    while(cin>>x>>y){
        outp(longfloat(x)+longfloat(y));

    }
}