#include <iostream>
#include <string>
#include <algorithm>
using namespace std;
void PaddingInteger(string &s, int num){
if(s.size()==num) return;
int padding = num - s.size();
for (int i = 0; i < padding; ++i) {
s = '0' + s;
}
}
void PaddingDecimal(string &s, int num){
if(s.size()==num) return;
int padding = num - s.size();
for (int i = 0; i < padding; ++i) {
s = s + '0';
}
}
string StrSum(string aU, string aL, string bU, string bL){
int carry=0, sum=0;
string temL="", temU="";
for (int i = aL.size()-1; i >=0 ; --i) {
sum = int(aL[i]-'0') + int(bL[i]-'0') + carry;
carry = sum/10;
temL.push_back(char(sum%10)+'0');
}
sum = 0;
for (int i = aU.size()-1; i >=0 ; --i) {
sum = int(aU[i]-'0') + int(bU[i]-'0') + carry;
carry = sum/10;
temU.push_back(char(sum%10)+'0');
}
reverse(temL.begin(),temL.end());
reverse(temU.begin(),temU.end());
string result = temU + "." + temL;
return result;
}
int main() {
string a,b;
while (cin>>a>>b){
string aU = a.substr(0,a.find("."));
string aL = a.substr(a.find(".")+1);
string bU = b.substr(0,b.find("."));
string bL = b.substr(b.find(".")+1);
int dU = aU.size()>bU.size() ? aU.size() : bU.size();
int dL = aL.size()>bL.size() ? aL.size() : bL.size();
PaddingInteger(aU,dU);
PaddingInteger(bU,dU);
PaddingDecimal(aL,dL);
PaddingDecimal(bL,dL);
string result = StrSum(aU,aL,bU,bL);
cout<<result<<endl;
}
return 0;
}