/////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//变态
////////////////////////////////////////////////////////////////////////////////////////////////////////////////
#include <iostream>
#include <cstdio>
#include <string>
// #include <cstring>

using namespace std;
const int MAXSIZE = 100;    //就是这儿,你一开始设置小点,运算快,之后别忘了改过来嘛#1

int main()
{
    string str1;
    string str2;
//     string str3;    //就是不知道为啥数组不能用#2
    int arr3[MAXSIZE];
    int m;
    int n;

    while(cin>>str1)
    {
        cin>>str2;
        for(int i=0; i<str1.size(); ++i)
        {
            if(str1[i]=='.')    //得区分小数点前和小数点后,小数点后补零对齐#3
            {
                m=i;
                break;
            }
        }
        for(int i=0; i<str2.size(); ++i)
        {
            if(str2[i]=='.')
            {
                n=i;
                break;
            }
        }

        int diff=str1.size()-str2.size()-m+n;    //给小数点后短的补零#6

        if(diff>0)
        {
            for(int i=0; i<diff; ++i)    //这里必须提前确定好范围,要不str越加越长#4
            {
                str2+="0";    //拼接得是字符串,得用双引号“”#5
            }
        }
        else
        {
            for(int i=0; i<-diff; ++i)
            {
                str1+="0";
            }
        }
        int p=str1.size()-1;    //str1从最右到左的序号#7
        int q=str2.size()-1;    //str2从最右到左的序号#8
        int k=0;    //进位#9
        int i=0;
        while(p>=0&&q>=0)    //有一个算完了退出来#10
        {
            if(str1[p]!='.')    //要是碰到小数点得留一个小数点的位置#11
            {
//                 str3[i]=((str1[p]-'0')+(str2[q]-'0'))%10+k+'0';    //反正就是不知道字符串str3为什么不行#12
                arr3[i]=((str1[p]-'0')+(str2[q]-'0')+k)%10;    //求余数,余数就是这个位的值#13
                if(str1[p]+str2[q]-'0'-'0'+k>=10)    //大于10就进位#14
                {
                    k=1;
                }
                else
                {
                    k=0;
                }
            }
            else
            {
                arr3[i]=-1;
//                 str3[i]='.';
            }
            --p;    //这种东西最麻烦了#15
            --q;
            ++i;
        }
        if(p==-1)    //把多余的补上#16
        {
            while(q>=0)
            {
                arr3[i]=str2[q]-'0'+k;    //刚才的进位也得加上#17
                k=0;    //就很烦,每次都得加一遍,所以设为0#18
//                 str3+=str2[q];
                q--;
                i++;
            }
        }
        else
        {
            while(p>=0)
            {
                arr3[i]=str1[p]-'0'+k;
                k=0;
                i++;
//                 str3+=str1[p];
                p--;
            }
        }
        for(i=i-1; i>=0; --i)
        {
            if(arr3[i]==-1)    //小数点必须有#19
            {
                cout<<'.';
            }
            else
            {
                cout<<arr3[i];
            }
//             cout<<str3[i];
        }
        cout<<endl;
    }
}