#include <bits/stdc++.h>
using namespace std;
int myPow(int x, int p) {
  if (p == 0) return 1;
  if (p == 1) return x;
  return x * myPow(x, p - 1);
}
pair<int, int> stringToVal(string s) {
  int cents = 0;
  int dollars = 0;
  bool found = false;
  int prev = s.length();
  int count = 0;
  for (int i = s.length() - 1; i >= 0; i--) {
    if (s[i] == '.') {
      if (!found && s.length() - i - 1 == 2) {
        string tmp = s.substr(i + 1, 2);
        cents += atoi(tmp.c_str());
        found = true;
        prev = i;
      } else {
        string tmp = s.substr(i + 1, 3);
        dollars += atoi(tmp.c_str()) * myPow(10, count);
        count += 3;
        prev = i;
      }
    }
  }
  string tmp = s.substr(0, prev);
  dollars += atoi(tmp.c_str()) * myPow(10, count);
  return make_pair(dollars + cents / 100, cents % 100);
}
int main() {
  string s;
  cin >> s;
  int i = 0;
  string val;
  double res = 0.0;
  int start;
  int dollars = 0, cents = 0;
  while (i < s.length()) {
    while (i < s.length() && s[i] >= 97 && s[i] <= 122) {
      i++;
    }
    start = i;
    while (i < s.length() && (s[i] < 97 || s[i] > 122)) {
      i++;
    }
    val = s.substr(start, i - start);
    pair<int, int> tmp = stringToVal(val);
    dollars += tmp.first;
    cents += tmp.second;
  }
  dollars += cents / 100;
  cents = cents % 100;
  ostringstream ss;
  ss << dollars;
  string dollarstr = ss.str();
  vector<char> result;
  int cnt = 0;
  for (int i = dollarstr.length() - 1; i >= 0; i--) {
    if (cnt % 3 == 0 && i != dollarstr.length() - 1) result.push_back('.');
    result.push_back(dollarstr[i]);
    cnt++;
  }
  for (int i = result.size() - 1; i >= 0; i--) {
    cout << result[i];
  }
  if (cents != 0) {
    if (cents >= 10)
      cout << "." << cents;
    else
      cout << ".0" << cents;
  }
  cout << endl;
}
