#include<cstdio> #include<string> #include<iostream> using namespace std; int findpot(string str){ int i=0; for (; i < str.size(); i++){ if (str[i] == '.'){ return i; } } return 0; } int main(){ string str1, str2; while (cin>>str1>>str2){ int s1 = findpot(str1); int s2 = findpot(str2); string part1, part2, part3, part4; part1 = str1.substr(0, s1); part2 = str1.substr(s1+1, str1.size()); part3 = str2.substr(0, s2); part4 = str2.substr(s2+1, str2.size()); if (s1 > s2){ for (int o = 0; o < s1-s2; o++){ part3.insert(0, "0"); } } if (s1 < s2){ for (int o = 0; o < s2-s1; o++){ part1.insert(0, "0"); } } if (part2.size() > part4.size()){ int aw = part2.size(), wa = part4.size(); for (int o = 0; o < aw-wa; o++){ part4.insert(part4.size(), "0"); } } if (part2.size() < part4.size()){ int aw = part2.size(), wa = part4.size(); for (int o = 0; o < wa-aw; o++){ part2.insert(part2.size(), "0"); } } int k=0,m=0; for (int i = part2.size() - 1; i >= 0; i--){ m = part2[i] - '0' + part4[i] - '0'+k; k = m / 10; part2[i] = (m % 10 + '0'); } for (int i = part1.size() - 1; i >= 0; i--){ m = part1[i] - '0' + part3[i] - '0' + k; k = m / 10; part1[i] = (m % 10 + '0'); } char a[100]; if (k == 1){ a[0] = '1'; int i = 1; for (; i <= part1.size(); i++){ a[i] = part1[i - 1]; } a[i] = '.'; for (int j = 0; j < part2.size(); j++){ a[i + j + 1] = part2[j]; } for (int k = 0; k < part1.size() + part2.size() + 2; k++){ printf("%c", a[k]); } } else{ int i = 0; for (; i < part1.size(); i++){ a[i] = part1[i]; } a[i] = '.'; for (int j = 0; j < part2.size(); j++){ a[i + j + 1] = part2[j]; } for (int k = 0; k < part1.size() + part2.size()+1; k++){ printf("%c", a[k]); } } printf("\n"); } }