#include <iostream>
#include <iterator>
#include <vector>
#include <algorithm>
using namespace std;
int main() {
string a, b;
while (cin >> a >> b) { // 注意 while 处理多个 case
vector<char> a1,a2,b1,b2;int t1=0,t2=0;
for(int i=0;i<a.length();i++){
if(a[i]=='.'){
t1=i;break;
}
}
for(int i=0;i<b.length();i++){
if(b[i]=='.'){
t2=i;break;
}
}
for(int i=0;i<t1;i++){
a1.push_back(a[i]);
}//存储a的整数部分
for(int i=t1+1;i<a.length();i++){
a2.push_back(a[i]);
}//a整数部分
for(int i=0;i<t2;i++){
b1.push_back(b[i]);
}//bz
for(int i=t2+1;i<b.length();i++){
b2.push_back(b[i]);
}//bx
int size1=a1.size();
int zlength=max(a1.size(),b1.size());
int flength=max(a2.size(),b2.size());
reverse(a1.begin(),a1.end());
reverse(b1.begin(),b1.end());
for(int i=a1.size()-1;i<zlength;i++){
a1.push_back('0');
}
for(int i=a2.size()-1;i<flength;i++){
a2.push_back('0');
}
for(int i=b1.size()-1;i<zlength;i++){
b1.push_back('0');
}
for(int i=b2.size()-1;i<flength;i++){
b2.push_back('0');
}
int z[zlength],f[flength];
for(int i=0;i<zlength;i++){
z[i]=a1[i]-'0'+b1[i]-'0';
}
for(int i=0;i<flength;i++){
f[i]=a2[i]-'0'+b2[i]-'0';
}reverse(f,f+flength);
if(f[flength-1]>9){f[flength-1]=f[flength-1]-10;z[0]+=1;}
for(int i=0;i<zlength;i++){
if(z[i]>9){z[i]=z[i]-10;z[i+1]++;}
}
for(int i=0;i<flength;i++){
if(f[i]>9){f[i]=f[i]-10;f[i+1]++;}
}
reverse(z,z+zlength);
reverse(f,f+flength);
for(int i=0;i<zlength;i++){
cout<<z[i];
}cout<<".";
for(int i=0;i<flength;i++){
cout<<f[i];
}
}
}
// 64 位输出请用 printf("%lld")