#include <bits/stdc++.h>   using namespace std;   const long long int MOD = 1e9 + 7;   void swap(int *a, int *b) {     int temp = *a;     *a = *b;     *b = temp;   }   unsigned long long int POW(unsigned long long int p, int b) {     unsigned long long int ans = 1LL;     while (b > 0) {       if (b & 1) {         ans = ans * 1LL * p;       }       b /= 2;       p = p * 1LL * p;     }     return ans;   }   long long int power(long long int a, long long int b, long long int mod) {     long long int x = 1;     long long int y = a;     while (b > 0) {       if (b & 1) {         x = x * y;         x %= mod;       }       y = y * y;       y %= mod;       b /= 2;     }     return x;   }   long long int add(long long int a, long long int b, long long int m = MOD) {     long long int x = a + b;     while (x >= m) x -= m;     while (x < 0) x += m;     return x;   }   long long int sub(long long int a, long long int b, long long int m = MOD) {     long long int x = a - b;     while (x < 0) x += m;     while (x >= m) x -= m;     return x;   }   long long int mul(long long int a, long long int b, long long int m = MOD) {     long long int x = a * 1ll * b;     x %= m;     if (x < 0) x += m;     return x;   }   vector<char> g[1001];   int main() {     string str;     cin >> str;     string temp =   ;     int idx = 0;     bool ek = false;     for (int i = 0; i < str.size();) {       if (isdigit(str[i])) {         int j = i;         bool hai = false;         for (j = i; j < str.size(); j++) {           if (!isdigit(str[j]) and !(str[j] ==  . )) break;           if (str[j] ==  .  and (j + 2) < str.size() and               (j + 3 >= (int)str.size() or !isdigit(str[j + 3]) ? 1 : 0)) {             g[idx].push_back(str[j]);             hai = true;             ek = true;           }           if (isdigit(str[j])) g[idx].push_back(str[j]);         }         if (!hai) {           g[idx].push_back( . );           g[idx].push_back( 0 );           g[idx].push_back( 0 );         }         i = j;         idx++;       } else         i++;     }     if (ek == false) {       int s = 0;       int cnt = 0;       int carry = 0;       vector<char> ans;       for (int i = 0; i < idx; i++) {         for (int j = 0; j < 3; j++) g[i].pop_back();       }       while (true) {         s = 0;         bool mila = false;         for (int i = 0; i < idx; i++) {           if (g[i].empty()) continue;           s += (g[i].back() -  0 );           g[i].pop_back();           mila = true;         }         if (mila == false) break;         if (cnt == 3) {           ans.push_back( . );           cnt = 0;         }         s += carry;         ans.push_back(s % 10 +  0 );         carry = s / 10;         cnt++;       }       while (carry != 0) {         if (cnt == 3) {           ans.push_back( . );           cnt = 0;         }         ans.push_back(carry % 10 +  0 );         carry /= 10;         cnt++;       }       reverse(ans.begin(), ans.end());       for (int i = 0; i < ans.size(); i++) cout << ans[i];     } else {       vector<char> ans;       int s = 0;       int cnt = 0;       int carry = 0;       for (int i = 0; i < idx; i++) {         s += g[i].back() -  0 ;         g[i].pop_back();       }       s += carry;       ans.push_back(s % 10 +  0 );       carry = s / 10;       s = 0;       for (int i = 0; i < idx; i++) {         s += g[i].back() -  0 ;         g[i].pop_back();         g[i].pop_back();       }       s += carry;       ans.push_back(s % 10 +  0 );       carry = s / 10;       ans.push_back( . );       while (true) {         s = 0;         bool mila = false;         for (int i = 0; i < idx; i++) {           if (g[i].empty()) continue;           s += (g[i].back() -  0 );           g[i].pop_back();           mila = true;         }         if (mila == false) break;         if (cnt == 3) {           ans.push_back( . );           cnt = 0;         }         s += carry;         ans.push_back(s % 10 +  0 );         carry = s / 10;         cnt++;       }       while (carry != 0) {         if (cnt == 3) {           ans.push_back( . );           cnt = 0;         }         ans.push_back(carry % 10 +  0 );         carry /= 10;         cnt++;       }       int value = 0;       if (ans[0] ==  0  and ans[1] ==  0 ) value = 3;       reverse(ans.begin(), ans.end());       for (int i = 0; i < ans.size() - value; i++) cout << ans[i];     }   }