#include <bits/stdc++.h>
using namespace std;
string s, f;
double g, ans, k;
vector<char> v;
long long d;
int main() {
  cin >> s;
  for (int i = 0; i < s.size(); i++) {
    if ((s[i] >= '0' && s[i] <= '9') || s[i] == '.')
      v.push_back(s[i]);
    else if (v.size() > 0) {
      g = 1;
      long long c = 0;
      k = 0;
      for (int j = v.size() - 1; j > -1; j--) {
        if (v[j] >= '0' && v[j] <= '9') {
          k += g * (v[j] - '0');
          g *= 10;
          c++;
        } else {
          if (c == 2) {
            ans += k * 1.0 / 100;
            g = 1;
            k = 0;
          }
        }
      }
      ans += k;
      v.clear();
    }
    if (i == s.size() - 1) {
      g = 1;
      long long c = 0;
      k = 0;
      for (int j = v.size() - 1; j > -1; j--) {
        if (v[j] >= '0' && v[j] <= '9') {
          k += g * (v[j] - '0');
          g *= 10;
          c++;
        } else {
          if (c == 2) {
            ans += k * 1.0 / 100;
            g = 1;
            k = 0;
          }
        }
      }
      ans += k;
      v.clear();
    }
  }
  if (ans == floor(ans)) {
    d = 0;
    long long q = (long long)ans;
    f = to_string(q);
    for (int i = f.size() - 1; i > -1; i--) {
      d++;
      if (d == 3 && i != 0) {
        f.insert(i, ".");
        d = 0;
      }
    }
  } else {
    f = to_string(ans);
    bool h = 0;
    for (int i = f.size() - 1; i > -1; i--) {
      if (f[i] == '0' && h == 0)
        f.erase(f.begin() + i);
      else
        h = 1;
      if (f[i + 3] == '.' && i != 0) {
        f.insert(i, ".");
      }
    }
  }
  if (f[f.size() - 2] == '.') f.push_back('0');
  cout << f;
  return 0;
}
