#include <bits/stdc++.h>
using namespace std;
vector<string> prices;
enum State { name, price };
double to_num(string s) {
  double n = 0;
  int dots = 0, dot = 0;
  bool frac = false;
  for (char c : s)
    if (c == '.') ++dots;
  if (s[s.size() - 3] == '.') frac = true;
  for (int i = 0; i < s.size(); ++i) {
    if (s[i] >= '0' && s[i] <= '9') {
      n *= 10;
      n += s[i] - '0';
    } else if (s[i] == '.')
      ++dot;
    if (dot == dots && frac) {
      n += double(s[i + 1] - '0') / 10.;
      n += double(s[i + 2] - '0') / 100.;
      break;
    }
  }
  return n;
}
string to_price(double n) {
  string s = to_string(n);
  string fraction;
  int dot = 0;
  for (int i = 0; i < s.size(); ++i)
    if (s[i] == '.') dot = i;
  if (s[dot + 1] != '0' || s[dot + 2] != '0') {
    fraction.push_back('.');
    fraction.push_back(s[dot + 1]);
    fraction.push_back(s[dot + 2]);
  }
  string c = s.substr(0, dot);
  s = c;
  string integer = to_string(int(n));
  string res;
  for (int i = integer.size() - 1, k = 0; i >= 0; --i) {
    ++k;
    res.push_back(integer[i]);
    if (k % 3 == 0 && i != 0) res.push_back('.');
  }
  reverse(res.begin(), res.end());
  res += fraction;
  return res;
}
int main() {
  string input;
  getline(cin, input);
  string s;
  State state = name;
  for (char c : input) {
    if (isalpha(c) && state == name)
      continue;
    else if (!isalpha(c) && state == name) {
      state = price;
      s.push_back(c);
    } else if (!isalpha(c) && state == price)
      s.push_back(c);
    else if (isalpha(c) && state == price) {
      state = name;
      prices.push_back(s);
      s.clear();
    }
  }
  prices.push_back(s);
  double sum = 0;
  for (int i = 0; i < prices.size(); ++i) sum += to_num(prices[i]);
  cout << to_price(sum);
}
