#include<stdlib.h>
#include<stdio.h>
#include<algorithm>
#include<iostream>
#include<stack>
#include<map>
#include<set>
#include<string>
#include<string.h>
#include<math.h>
#include<vector>
using namespace std;
typedef long long LL;
const int MAXN=1e5+10;
int main(){
string s1,s2;
while(cin>>s1>>s2){
vector<int>a;
vector<int>b;
vector<int>c;
vector<int>c2;
vector<int>e;
vector<int>f;
int jilu=0;
int len1=s1.size();
int len2=s2.size();
int pos1=s1.find('.');
int pos2=s2.find('.');
int ge1=len1-pos1;
int ge2=len2-pos2;
int cha=abs(ge1-ge2);
if(ge1>ge2){
for(int i=0;i<cha;i++){
s2+='0';
}
}
else{
for(int i=0;i<cha;i++){
s1+='0';
}
}
// cout<<s1<<endl;
// cout<<s2<<endl;
for(int i=s1.size()-1;i>=0;i--){
if(s1[i]!='.')a.push_back(s1[i]-'0');
else{
jilu=i;
break;
}
}
for(int i=jilu-1;i>=0;i--){
e.push_back(s1[i]-'0');
}
for(int i=s2.size()-1;i>=0;i--){
if(s2[i]!='.')b.push_back(s2[i]-'0');
else{
jilu=i;
break;
}
}
for(int i=jilu-1;i>=0;i--){
f.push_back(s2[i]-'0');
}
// for(int i=0;i<a.size();i++)cout<<a[i];
// cout<<endl;
// for(int i=0;i<b.size();i++)cout<<b[i];
// cout<<endl;
// for(int i=0;i<e.size();i++)cout<<e[i];
// cout<<endl;
// for(int i=0;i<f.size();i++)cout<<f[i];
// cout<<endl;
int t=0;
for(int i=0;i<a.size()||i<b.size();i++){
if(i<a.size())t+=a[i];
if(i<b.size())t+=b[i];
c.push_back(t%10);
t/=10;
}
// cout<<c[0]<<'.';
// for(int i=1;i<c.size();i++)cout<<c[i];
for(int i=0;i<e.size()||i<f.size();i++){
if(i<e.size())t+=e[i];
if(i<f.size())t+=f[i];
c2.push_back(t%10);
t/=10;
}
if(t!=0)c2.push_back(t);
reverse(c2.begin(),c2.end());
reverse(c.begin(),c.end());
for(int i=0;i<c2.size();i++)cout<<c2[i];
cout<<'.';
for(int i=0;i<c.size();i++)cout<<c[i];
}
return 0;
}