#include<cstdio>#include<cstdlib>#include<cstring>#include<string>#include<iostream>#include<sstream>#include<algorithm>#include<cmath>#include<vector>#include<stack>#include<queue>#include<deque>#include<bitset>#include<set>#include<map>#include<unordered_set>#include<unordered_map>#defineLLlonglong#definemem(a, b)memset(a, b,sizeof a)#definelowbit(x)(-x&x)#defineIOSios::sync_with_stdio(false),cin.tie(0)#defineendl'\n'#definerev(x)reverse(x.begin(), x.end())usingnamespace std;
string a, b;
vector<int> A, B, C, D, T;intfind(string s){int res = s.size();for(int i =0; i < s.size(); i ++){if(s[i]=='.'){
res = i;break;}}return res;}
vector<int>add(vector<int>& A, vector<int>&B){int la = A.size(), lb = B.size();
vector<int> C;for(int i =0, t =0; i < la || i < lb || t; i ++){
t +=(i < la ? A[i]:0)+(i < lb ? B[i]:0);
C.push_back(t %10);
t /=10;}return C;}intmain(){
IOS;while(cin >> a >> b){int ap =find(a), bp =find(b);
A.clear(), B.clear(), C.clear(), D.clear(), T.clear();for(int i =0; i < ap; i ++) A.push_back(a[i]-'0');for(int i =0; i < bp; i ++) B.push_back(b[i]-'0');for(int i = ap +1; i < a.size(); i ++) C.push_back(a[i]-'0');for(int i = bp +1; i < b.size(); i ++) D.push_back(b[i]-'0');rev(A),rev(B);
A =add(A, B);if(C.size()> D.size())swap(C, D);while(C.size()< D.size()) C.push_back(0);int tsize = C.size();rev(C),rev(D);
C =add(C, D);for(int i = tsize; i < C.size(); i ++){
T.push_back(C.back());
C.pop_back();}rev(T);
A =add(A, T);rev(C);while(C.size()&& C.back()==0) C.pop_back();rev(A);for(auto e : A) cout << e;if(C.size()){
cout <<'.';for(auto e : C) cout << e;}
cout << endl;}return0;}