#include <bits/stdc++.h>
using namespace std;
int N, M, K, L, Q;
vector<string> v;
int main() {
  string S;
  cin >> S;
  bool f = false;
  string k = "";
  for (int i = 0; i < S.size(); i++) {
    char c = S[i];
    if (c >= 'a' && c <= 'z') {
      f = true;
      if (k != "") {
        v.push_back(k);
        k = "";
      }
    } else {
      if (f) {
        f = false;
        k.push_back(c);
      } else {
        k.push_back(c);
      }
    }
  }
  if (k != "") v.push_back(k);
  vector<int> ret;
  for (int i = 0; i < 1005; i++) ret.push_back(0);
  for (int i = 0; i < v.size(); i++) {
    string str = v[i];
    int l;
    if (str.size() < 3)
      l = 2;
    else {
      if (str[str.size() - 3] == '.')
        l = 0;
      else
        l = 2;
    }
    for (int j = str.size() - 1; j >= 0; j--) {
      if (str[j] == '.') continue;
      ret[l] += str[j] - '0';
      l++;
    }
  }
  for (int i = 0; i < 1005; i++) {
    if (ret[i] >= 10) {
      ret[i + 1] += ret[i] / 10;
      ret[i] %= 10;
    }
  }
  reverse((ret).begin(), (ret).end());
  int start = -1;
  for (int i = 0; i < 1005; i++) {
    if (ret[i] != 0) {
      start = i;
      break;
    }
  }
  if (start == -1) {
    cout << 0;
    return 0;
  }
  string rets = "";
  for (int i = start; i < 1005; i++) {
    rets.push_back((ret[i] + '0'));
  }
  while (rets.size() < 3) rets.insert(0, "0");
  int z = 0;
  string fi = "";
  fi.push_back(rets[rets.size() - 1]);
  fi.push_back(rets[rets.size() - 2]);
  fi.push_back('.');
  for (int i = rets.size() - 3; i >= 0; i--) {
    if (z++ == 3) {
      fi.append(".");
      z = 1;
    }
    fi.push_back(rets[i]);
  }
  reverse((fi).begin(), (fi).end());
  if (fi[fi.size() - 3] == '.' && fi[fi.size() - 2] == '0' &&
      fi[fi.size() - 1] == '0') {
    fi = fi.substr(0, fi.size() - 3);
  }
  cout << fi;
  cin >> N;
}
