#include <bits/stdc++.h>
using namespace std;
double value(string s) {
  string st = "0", cent = "";
  int l = s.length(), cnt = 0;
  if (l > 2) {
    if (s[l - 3] == '.') {
      cent.push_back(s[l - 3]);
      cent.push_back(s[l - 2]);
      cent.push_back(s[l - 1]);
      l -= 3;
    }
  }
  for (int a = 0; a < l; a++) {
    if (s[a] == '.') continue;
    st.push_back(s[a]);
  }
  st += cent;
  double v;
  sscanf(st.c_str(), "%lf", &v);
  return v;
}
int main() {
  string s;
  while (cin >> s) {
    s += "A";
    int l = s.length();
    bool flag = false;
    double ans = 0.0;
    string st = "";
    for (int a = 0; a < l; a++) {
      if (isalpha(s[a])) {
        if (flag) {
          ans += value(st);
          st = "";
          flag = false;
        } else
          continue;
      } else {
        st.push_back(s[a]);
        flag = true;
      }
    }
    char arr[30];
    sprintf(arr, "%0.2f", ans);
    s = string(arr);
    stack<char> stk;
    int len = s.length(), cnt = 0, a = 0;
    for (; a < len; a++) {
      if (s[a] == '.') {
        if (s[len - 2] == '0' && s[len - 1] == '0') goto br;
        stk.push(s[len - 1]);
        stk.push(s[len - 2]);
        stk.push(s[len - 3]);
      br:
        break;
      }
    }
    int p = 0;
    for (a = len - 4; a >= 0; a--) {
      stk.push(s[a]);
      p++;
      if (p == 3) stk.push('.'), p = 0;
    }
    bool on = true;
    while (!stk.empty()) {
      char ch = stk.top();
      stk.pop();
      if (on && ch == '.') {
        on = false;
        continue;
      }
      cout << ch;
      on = false;
    }
    cout << endl;
  }
  return 0;
}
