#include <bits/stdc++.h>
using namespace std;
long long int powmod(long long int a, long long int b) {
  long long int res = 1;
  a %= 1000000007;
  assert(b >= 0);
  for (; b; b >>= 1) {
    if (b & 1) res = res * a % 1000000007;
    a = a * a % 1000000007;
  }
  return res;
}
long long int gcd(long long int a, long long int b) {
  return b == 0 ? a : gcd(b, a % b);
}
long long int lcm(long long int a, long long int b) {
  return a * (b / gcd(a, b));
}
long long int m, mx = -1, i, j, n, d, cnt = 0, t, q, tmp, flag = 0, k, pos,
                 bpos = 123456789, x, y;
unsigned long long int ans[12345678];
int main() {
  ios_base::sync_with_stdio(false);
  cin.tie(NULL);
  string s, ss;
  long double ts, sum = 0;
  ss.clear();
  cin >> s;
  for (i = 0; i < s.size(); i++) {
    if ((s[i] >= 48 && s[i] < 58) || s[i] == '.')
      ss.push_back(s[i]);
    else if (!ss.empty()) {
      if (ss.size() > 3) {
        size_t found = ss.find_last_of('.');
        if (found == ss.size() - 3)
          tmp = ss.size() - 3;
        else
          tmp = ss.size();
        for (j = 0; j < tmp; j++) {
          if (ss[j] == '.') ss.erase(ss.begin() + j);
          tmp--;
        }
      }
      ts = stod(ss);
      sum = sum + ts;
      ss.clear();
    }
  }
  if (ss.size() > 3) {
    size_t found = ss.find_last_of('.');
    if (found == ss.size() - 3)
      tmp = ss.size() - 3;
    else
      tmp = ss.size();
    for (j = 0; j < tmp; j++) {
      if (ss[j] == '.') ss.erase(ss.begin() + j);
      tmp--;
    }
  }
  ts = stod(ss);
  sum = sum + ts;
  ss.clear();
  int rtm, stm;
  string str = to_string(sum);
  std::size_t itr = str.find('.');
  stm = str.size() - 4;
  if (str[itr + 1] == '0' && str[itr + 2] == '0') stm = str.size() - 7;
  for (i = itr; i > 0; i--) {
    if ((itr - i) % 3 == 0 && i != itr) {
      str.insert(str.begin() + i, '.');
      stm++;
    }
  }
  for (i = 0; i < stm; i++) cout << str[i];
  return 0;
}
