//KY78 浮点数加法
#include <iostream>
#include <algorithm>
#include <cstring>
#include <string>
using namespace std;
string a, b;
string pre1, pre2, last1, last2;
void addlast(string &last, int &jin, string last1, string last2)
{
    for(int i=last1.size()-1;i>=0;i--){
        last[i]=((last1[i]-'0')+(last2[i]-'0')+jin)%10+'0';
        jin=((last1[i]-'0')+(last2[i]-'0')+jin)/10;
    }
}
void addpre(string &pre, int jin, string pre1, string pre2)
{
    for(int i=pre1.size()-1;i>=0;i--){
        pre[i]=((pre1[i]-'0')+(pre2[i]-'0')+jin)%10+'0';
        jin=((pre1[i]-'0')+(pre2[i]-'0')+jin)/10;
    }
    if(jin) pre='0'+pre;
}
int main()
{
    cin>>a>>b;
    int p1=a.find('.'), p2=b.find('.');
    pre1=a.substr(0,p1);
    pre2=b.substr(0,p2);
    last1=a.substr(p1+1);
    last2=b.substr(p2+1);
    
    int l=max(last1.size(),last2.size());
    while(last1.size()<last2.size()) last1.push_back('0');
    while(last2.size()<last1.size()) last2.push_back('0');
    
    string last;
    last.resize(l);
    int jin=0;
    addlast(last,jin,last1,last2);
    
    int r=max(pre1.size(),pre2.size());
    while(pre1.size()<pre2.size()) pre1='0'+pre1;
    while(pre2.size()<pre1.size()) pre2='0'+pre2;
    
    string pre;
    pre.resize(r);
    addpre(pre,jin,pre1,pre2);
    
    string s=pre+'.'+last;
    cout<<s<<"\n";
    return 0;
}