#include <iostream>
#include <string>
#include <algorithm>

using namespace std;

void PaddingInteger(string &s, int num){
    if(s.size()==num) return;
    int padding = num - s.size();
    for (int i = 0; i < padding; ++i) {
        s = '0' + s;
    }
}

void PaddingDecimal(string &s, int num){
    if(s.size()==num) return;
    int padding = num - s.size();
    for (int i = 0; i < padding; ++i) {
        s = s + '0';
    }
}

string StrSum(string aU, string aL, string bU, string bL){
    int carry=0, sum=0;
    string temL="", temU="";
    for (int i = aL.size()-1; i >=0 ; --i) {
        sum = int(aL[i]-'0') + int(bL[i]-'0') + carry;
        carry = sum/10;
        temL.push_back(char(sum%10)+'0');
    }
    sum = 0;
    for (int i = aU.size()-1; i >=0 ; --i) {
        sum = int(aU[i]-'0') + int(bU[i]-'0') + carry;
        carry = sum/10;
        temU.push_back(char(sum%10)+'0');
    }
    reverse(temL.begin(),temL.end());
    reverse(temU.begin(),temU.end());

    string result = temU + "." + temL;
    return result;
}

int main() {
    string a,b;
    while (cin>>a>>b){

        string aU = a.substr(0,a.find("."));
        string aL = a.substr(a.find(".")+1);
        string bU = b.substr(0,b.find("."));
        string bL = b.substr(b.find(".")+1);

        int dU = aU.size()>bU.size() ? aU.size() : bU.size();
        int dL = aL.size()>bL.size() ? aL.size() : bL.size();
        PaddingInteger(aU,dU);
        PaddingInteger(bU,dU);
        PaddingDecimal(aL,dL);
        PaddingDecimal(bL,dL);

        string result = StrSum(aU,aL,bU,bL);
        cout<<result<<endl;
    }

    return 0;
}