//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;
}