#include <bits/stdc++.h>
using namespace std;
const int MAXN = 1e5;
int main() {
  string s;
  cin >> s;
  int n = (int)s.size();
  int pos = 0;
  int arub = 0;
  int akop = 0;
  int rub, kop;
  while (pos < n) {
    if (s[pos] >= '0' && s[pos] <= '9') {
      string val = "";
      while (pos < n && ((s[pos] == '.') || (s[pos] >= '0' && s[pos] <= '9'))) {
        val = val + s[pos];
        pos++;
      }
      rub = 0;
      kop = 0;
      int q = val.size() - 1;
      if (val.size() >= 3 && val[val.size() - 3] == '.') {
        kop = (val[val.size() - 1] - '0') + (val[val.size() - 2] - '0') * 10;
        q = val.size() - 4;
      }
      int st = 1;
      for (int i = q; i >= 0; i--) {
        if (val[i] == '.') continue;
        rub = rub + (val[i] - '0') * st;
        st = st * 10;
      }
      arub = arub + rub;
      akop = akop + kop;
    }
    pos++;
  }
  arub = arub + (akop / 100);
  akop = akop % 100;
  string ans = "";
  char dict[10];
  dict[0] = '0';
  dict[1] = '1';
  dict[2] = '2';
  dict[3] = '3';
  dict[4] = '4';
  dict[5] = '5';
  dict[6] = '6';
  dict[7] = '7';
  dict[8] = '8';
  dict[9] = '9';
  if (akop != 0) {
    ans = dict[akop % 10];
    ans = ans + dict[akop / 10];
    ans = ans + '.';
  }
  int cnt = 0;
  int e = arub;
  while (arub != 0) {
    ans = ans + dict[arub % 10];
    cnt++;
    arub = arub / 10;
    if (cnt % 3 == 0 && arub != 0) ans = ans + '.';
  }
  if (e == 0) cout << '0';
  for (int i = (int)ans.size() - 1; i >= 0; i--) cout << ans[i];
  return 0;
}
