#include <bits/stdc++.h>
using namespace std;
string s;
int make(string r) {
  reverse(r.begin(), r.end());
  int ans = 0;
  for (int i = 0; i < r.size(); i++) {
    if (r[i] == '.') continue;
    ans = ans * 10 + r[i] - '0';
  }
  return ans;
}
double parse(int idx) {
  double ans = 0;
  std::string t;
  for (int i = idx; (s[i] >= '0' && s[i] <= '9') || s[i] == '.'; i++) {
    t += s[i];
    s[i] = 'z';
  }
  std::reverse(t.begin(), t.end());
  if (t.size() <= 3) {
    ans += make(t);
    return ans;
  }
  if (t[2] == '.') {
    ans += make(t.substr(3));
    ans += ((t[0] - '0') / 100.00);
    ans += ((t[1] - '0') / 10.00);
  } else {
    ans += make(t);
  }
  return ans;
}
int main() {
  cin >> s;
  double ans = 0;
  for (int i = 0; i < s.size(); i++) {
    if (isdigit(s[i])) ans += parse(i);
  }
  string d;
  stringstream ss;
  ss << fixed << setprecision(2) << ans;
  ss >> d;
  string a;
  if (d.size() <= 3) return 0 * printf("%s\n", d.c_str());
  reverse(d.begin(), d.end());
  if (d[2] == '.') {
    a = d.substr(3);
    string f;
    for (int i = 0, u = 0; i < a.size(); i++, u++) {
      if (u == 3 || u == 6) f += '.';
      f += a[i];
    }
    reverse(f.begin(), f.end());
    if (d[1] == '0' && d[0] == '0') return 0 * printf("%s\n", f.c_str());
    cout << f << "." << d[1] << d[0] << endl;
  } else {
    string f;
    for (int i = 0, u = 1; i < a.size(); i++, u++) {
      if (u == 3 || u == 6) f += '.';
      f += a[i];
    }
    reverse(f.begin(), f.end());
    cout << f << endl;
  }
}
