#include <bits/stdc++.h>
using namespace std;
void add(string &s1, string &s2) {
  int i = s1.size();
  int j = s2.size();
  char carry = 0;
  while (i-- > 0 && j-- > 0) {
    if (s1[i] == '.') continue;
    s1[i] += s2[j] - '0' + carry;
    carry = 0;
    if (s1[i] > '9') {
      s1[i] -= 10;
      carry = 1;
    }
  }
  while (carry == 1) {
    if (s1[i] == '.') i--;
    s1[i] += carry;
    carry = 0;
    if (s1[i] > '9') {
      s1[i] -= 10;
      carry = 1;
    }
    i--;
  }
}
void B() {
  vector<string> prices;
  string s;
  cin >> s;
  int flag = 1;
  for (char x : s) {
    if (('0' <= x && x <= '9') || x == '.') {
      if (flag) {
        prices.emplace_back();
        flag = 0;
      }
      prices.back().push_back(x);
    } else {
      flag = 1;
    }
  }
  string res = "000.000.000.00";
  for (string &s : prices) {
    if (s[s.size() - 3] != '.') s.append(".00");
    add(res, s);
  }
  int b = 0;
  while ((res[b] == '0' || res[b] == '.') && (b < (int)res.size() - 4)) b++;
  int len = res.size();
  if (res.substr(len - 2, 2) == "00") len -= 3;
  len -= b;
  cout << res.substr(b, len) << endl;
}
int res[32];
int rd = 0;
bool calA(long long a, long long b, int d) {
  if (a == b) {
    rd = d;
    return true;
  }
  if (a > b) return false;
  res[d] = 2;
  if (calA(a * 2, b, d + 1)) return true;
  res[d] = 10;
  if (calA(a * 10 + 1, b, d + 1)) return true;
  return false;
}
void A() {
  long long a, b;
  cin >> a >> b;
  if (!calA(a, b, 0)) {
    cout << "NO" << endl;
    return;
  }
  cout << "YES" << endl;
  cout << rd + 1 << endl;
  int t = a;
  cout << t << ' ';
  for (int i = 0; i < rd; i++) {
    t *= res[i];
    if (res[i] == 10) t++;
    cout << t << ' ';
  }
  cout << endl;
}
int main() {
  B();
  return EXIT_SUCCESS;
}
