#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")