#include<iostream>
#include<vector>
#include<cstring>
#include<algorithm>
#include<math.h>
using namespace std;

string stradd(string s1, string s2) {
    int n1 = s1.size();
    int n2 = s2.size();
    int i = 0;
    string res;
    reverse(s1.begin(), s1.end());
    reverse(s2.begin(), s2.end());
    int c = 0;
    while (i < n1 && i < n2) {
        if ((s1[i] - '0') + (s2[i] - '0') + c < 10) {
            res.push_back(s1[i] + (s2[i] - '0') + c);
            c = 0;
        } else {
            int x = (s1[i] - '0') + (s2[i] - '0') + c;
            res.push_back('0' + x % 10);
            c = x / 10;
        }
        i++;
    }
    if (n1 > n2) {
        for (int i = n2; i < n1; i++) {
            int sum = (s1[i] - '0') + c;
            res.push_back('0' + sum % 10);
            c = sum / 10;
        }

    } else if (n1 < n2) {
        for (int i = n1; i < n2; i++) {
            int sum = (s2[i] - '0') + c;
            res.push_back('0' + sum % 10);
            c = sum / 10;
        }
    }
    if (c > 0) {
        res.push_back('0' + c);
    }
    reverse(res.begin(), res.end());

    return res;
}

int main() {
    string s1, s2;
    string zhenshu[2], xiaoshu[2];
    string left, right;
    cin >> s1 >> s2;
    int n1 = s1.size(), n2 = s2.size();
    for (int i = 0; i < n1; i++) {
        if (s1[i] == '.') {
            zhenshu[0] = s1.substr(0, i);
            xiaoshu[0] = s1.substr(i + 1, n1 - i - 1);
        }
    }
    for (int i = 0; i < n2; i++) {
        if (s2[i] == '.') {
            zhenshu[1] = s2.substr(0, i);
            xiaoshu[1] = s2.substr(i + 1, n2 - i - 1);
        }
    }
    if (xiaoshu[0].size() < xiaoshu[1].size()) {
        while (xiaoshu[0].size() < xiaoshu[1].size()) {
            xiaoshu[0].push_back('0');
        }
    } else if (xiaoshu[1].size() < xiaoshu[0].size()) {
        while (xiaoshu[1].size() < xiaoshu[0].size()) {
            xiaoshu[1].push_back('0');
        }
    }

    left = stradd(zhenshu[0], zhenshu[1]);
    right = stradd(xiaoshu[0], xiaoshu[1]);

    if (right.size() > max(xiaoshu[0].size(), xiaoshu[1].size())) {
        string xiaoshu_c = right.substr(0, 1);
        left = stradd(left, xiaoshu_c);
        right = right.erase(0, 1);
    }
    cout << left << "." << right;
    return 0;
}