#include <iostream>
#include<cstring>
#include<algorithm>
using namespace std;

//本题思路是用四个string分别存被加数和加数的整数部分和小数部分进行处理

void float_add() {
    string str1;
    string str2;
    string str_zhengshu1; // 存被加数的整数部分
    string str_xiaoshu1;  // 存被加数的小数部分
    string str_zhengshu2; // 存加数的整数部分
    string str_xiaoshu2;  // 存加数的小数部分
    string str_zhengshu3; // 存结果的整数部分
    string str_xiaoshu3;  // 存结果的小数部分
    cin >> str1;
    cin >> str2;
    string::iterator it1;
    string::iterator it2;
    string::iterator it3;

    for (it1 = str1.begin(); *it1 != '.'; it1++) {
        str_zhengshu1.push_back(*it1); // 存被加数的整数部分
    }
    for (it1 += 1; it1 != str1.end(); it1++) {
        str_xiaoshu1.push_back(*it1); // 存被加数的小数部分
    }

    for (it2 = str2.begin(); *it2 != '.'; it2++) {
        str_zhengshu2.push_back(*it2); // 存加数的整数部分
    }
    for (it2 += 1; it2 != str2.end(); it2++) {
        str_xiaoshu2.push_back(*it2); // 存加数的小数部分
    }

    // 处理小数
    int len_xiaoshu1 = str_xiaoshu1.size();
    int len_xiaoshu2 = str_xiaoshu2.size();
    if (len_xiaoshu1 > len_xiaoshu2) { // 统一小数位数
        int k = len_xiaoshu1 - len_xiaoshu2;
        while (k) {
            str_xiaoshu2.push_back('0'); // 低位补零
            k--;
        }
    } else {
        int k = len_xiaoshu2 - len_xiaoshu1;
        while (k) {
            str_xiaoshu1.push_back('0'); // 低位补零
            k--;
        }
    }
    // 倒置方便计算
    reverse(str_xiaoshu1.begin(), str_xiaoshu1.end());
    reverse(str_xiaoshu2.begin(), str_xiaoshu2.end());

    // 处理整数
    // 倒置方便计算
    reverse(str_zhengshu1.begin(), str_zhengshu1.end());
    reverse(str_zhengshu2.begin(), str_zhengshu2.end());
    int len_zhengshu1 = str_zhengshu1.size();
    int len_zhengshu2 = str_zhengshu2.size();
    if (len_zhengshu1 > len_zhengshu2) { // 统一整数位数
        int k = len_zhengshu1 - len_zhengshu2;
        while (k) {
            str_zhengshu2.push_back('0'); // 高位补零
            k--;
        }
    } else {
        int k = len_zhengshu2 - len_zhengshu1;
        while (k) {
            str_zhengshu1.push_back('0'); // 高位补零
            k--;
        }
    }
    // 初始进位为0
    int jinwei = 0;
    // 小数加法
    for (it1 = str_xiaoshu1.begin(), it2 = str_xiaoshu2.begin();
            it1 != str_xiaoshu1.end(); it1++, it2++) { // 小数部分相加
        int x = *it1 - '0'; // 字符转数
        int y = *it2 - '0'; // 字符转数
        int sum = x + y + jinwei;
        if (sum > 9) { // 有进位
            sum %= 10;
            jinwei = 1;
        } else { // 无进位
            jinwei = 0;
        }
        char ch = sum + '0';        // 数转字符
        str_xiaoshu3.push_back(ch); // 插入结果小数部分
    }
    // 整数加法
    for (it1 = str_zhengshu1.begin(), it2 = str_zhengshu2.begin();
            it1 != str_zhengshu1.end(); it1++, it2++) { // 小数部分相加
        int x = *it1 - '0'; // 字符转数
        int y = *it2 - '0'; // 字符转数
        int sum = x + y + jinwei;
        if (sum > 9) { // 有进位
            sum %= 10;
            jinwei = 1;
        } else { // 无进位
            jinwei = 0;
        }
        char ch = sum + '0';         // 数转字符
        str_zhengshu3.push_back(ch); // 插入结果小数部分
    }
    if (jinwei == 1)
        str_zhengshu3.push_back('1');

    // 倒置便于输出
    reverse(str_zhengshu3.begin(), str_zhengshu3.end());
    reverse(str_xiaoshu3.begin(), str_xiaoshu3.end());
    for (auto it = str_zhengshu3.begin(); it != str_zhengshu3.end(); it++) {
        cout << *it; // 输出整数
    }
    cout << "."; // 输出小数点
    for (auto it = str_xiaoshu3.begin(); it != str_xiaoshu3.end(); it++) {
        cout << *it; // 输出小数
    }
    cout << endl;
    // test
    // for (auto it = str_zhengshu1.begin(); it != str_zhengshu1.end(); it++)
    // {
    //     cout << *it;
    // }
    // cout << endl;
    // for (auto it = str_xiaoshu1.begin(); it != str_xiaoshu1.end(); it++)
    // {
    //     cout << *it;
    // }
    // cout << endl;
    // for (auto it = str_zhengshu2.begin(); it != str_zhengshu2.end(); it++)
    // {
    //     cout << *it;
    // }
    // cout << endl;
    // for (auto it = str_xiaoshu2.begin(); it != str_xiaoshu2.end(); it++)
    // {
    //     cout << *it;
    // }
    // cout << endl;
}

int main() {
    float_add();
    return 0;
}