#include <bits/stdc++.h>
long long ParsePrice(std::string& strPrice) {
  long long kop = 0;
  if (strPrice.size() > 3 && strPrice.at(strPrice.size() - 3) == '.') {
    std::string kopStr = strPrice.substr(strPrice.size() - 2);
    strPrice.erase(strPrice.size() - 3);
    kop = atoi(kopStr.c_str());
  }
  strPrice.erase(std::remove(strPrice.begin(), strPrice.end(), '.'),
                 strPrice.end());
  long long total = atoi(strPrice.c_str()) * 100;
  total += kop;
  return total;
}
std::string GenPrice(long long nCount) {
  std::string retVal;
  long long kop = nCount % 100;
  if (kop > 0) {
    retVal = "." + std::to_string(kop);
    if (kop < 10) retVal.insert(retVal.begin() + 1, '0');
  }
  nCount /= 100;
  if (nCount == 0) {
    retVal.insert(retVal.begin(), '0');
  } else {
    while (nCount > 0) {
      long long tail = nCount % 1000;
      std::string str = std::to_string(tail);
      while (str.size() < 3) str = '0' + str;
      retVal = str + retVal;
      nCount /= 1000;
      if (nCount > 0) retVal.insert(retVal.begin(), '.');
    }
  }
  while (retVal.size() > 1 && retVal[0] == '0' && retVal[1] != '.')
    retVal.erase(retVal.begin());
  return retVal;
}
int main() {
  std::string str;
  std::cin >> str;
  std::string currPrice;
  long long nSum = 0;
  for (size_t iter = 0; iter < str.size(); iter++) {
    if (str[iter] >= 'a' && str[iter] <= 'z') {
      if (!currPrice.empty()) {
        nSum += ParsePrice(currPrice);
      }
      currPrice.clear();
    } else {
      currPrice += str[iter];
    }
  }
  if (!currPrice.empty()) nSum += ParsePrice(currPrice);
  std::cout << GenPrice(nSum);
  return 0;
}
