#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
#include<cstdlib>
using namespace std;

const int inf = 0x3f3f3f3f;

char str[1006];
double sum;

double tmp(char *a) {
	int flag = 0,n;
	int tt = strlen(a);
	if(tt > 2 && a[tt-3] == '.')
		flag = 1;
	int cc = 0;
	char aa[100];
	for(int i = 0;i < tt;i++) {
		if(a[i] != '.')
		aa[cc++] = a[i];
	}
	aa[cc] = '\0';
	n = atof(aa);
	double an;
	if(flag)
		an = n*1.0/100;
	else
		an = n;
	return an;
}

int main() {
	scanf("%s",str);
	sum = 0;
	int len = strlen(str),cnt;
	char num[100];
	for(int i = 0;i < len;i++) {
		cnt = 0;
		if(str[i] >= '0' && str[i] <= '9') {
			for(int j = i;;j++) {
				if(str[j] >= '0' && str[j] <= '9');
				else if(str[j] == '.');
				else {
					i = j;
					num[cnt] = '\0';
					cnt = 0;
					sum += tmp(num);
					break;
				}
				num[cnt++] = str[j];
			}
		}
	}
	//printf("%.2f\n",sum);
	char str1[100],str2[100];
	long long tt = sum*100;
	int ha = 2;
	if(tt % 100 == 0)
		ha = 0;
	else if(tt % 10 == 0)
		ha = 1;
	if(sum < 1 && ha == 1)
		printf("%.1f\n",sum);
	else if(sum < 1 && ha == 2)
		printf("%.2f\n",sum);
	else if(ha == 0){
		sprintf(str1,"%lld",(long long)sum);
		int jie;
		jie = strlen(str1) - ha;
		int j = (jie) % 3;
		for(int i = 0;str1[i] != '\0';i++) {
			if((i+1) % 3 == j && str1[i+1] != '\0')
				printf("%c.",str1[i]);
			else
				printf("%c",str1[i]);
		}
		printf("\n");
	}
	else {
		//printf("323\n");
		//printf("%I64d\n",tt);
		double ttt = double(tt);
		//printf("%.3f %.3f\n",sum,double(ttt/100));
		if(sum - double(ttt/100) > 0.00001)
			tt++;
		sprintf(str1,"%lld",tt);
		double ii = str1[strlen(str1)-1] - '0';
		int jie;
		jie = strlen(str1) - ha;
		int j = (jie) % 3;
		for(int i = 0;str1[i] != '\0';i++) {
			if(i % 3 == j-1 && str1[i+1] != '\0')
				printf("%c.",str1[i]);
			else
				printf("%c",str1[i]);
		}
		printf("\n");
	}
}


#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
#include<cstdlib>
using namespace std;

const int inf = 0x3f3f3f3f;

char str[1006];
double sum;

double tmp(char *a) {
	int flag = 0,n;
	int tt = strlen(a);
	if(tt > 2 && a[tt-3] == '.')
		flag = 1;
	int cc = 0;
	char aa[100];
	for(int i = 0;i < tt;i++) {
		if(a[i] != '.')
		aa[cc++] = a[i];
	}
	aa[cc] = '\0';
	n = atof(aa);
	double an;
	if(flag)
		an = n*1.0/100;
	else
		an = n;
	return an;
}

int main() {
	scanf("%s",str);
	sum = 0;
	int len = strlen(str),cnt;
	char num[100];
	for(int i = 0;i < len;i++) {
		cnt = 0;
		if(str[i] >= '0' && str[i] <= '9') {
			for(int j = i;;j++) {
				if(str[j] >= '0' && str[j] <= '9');
				else if(str[j] == '.');
				else {
					i = j;
					num[cnt] = '\0';
					cnt = 0;
					sum += tmp(num);
					break;
				}
				num[cnt++] = str[j];
			}
		}
	}
	//printf("%.2f\n",sum);
	char str1[100],str2[100];
	long long tt = sum*100;
	int ha = 2;
	if(tt % 100 == 0)
		ha = 0;
	else if(tt % 10 == 0)
		ha = 1;
	if(sum < 1 && ha == 1)
		printf("%.1f\n",sum);
	else if(sum < 1 && ha == 2)
		printf("%.2f\n",sum);
	else if(ha == 0){
		sprintf(str1,"%lld",(long long)sum);
		int jie;
		jie = strlen(str1);
		int j = (jie) % 3;
		for(int i = 0;str1[i] != '\0';i++) {
			if((i+1) % 3 == 0)
				printf("%c.",str1[i]);
			else
				printf("%c",str1[i]);
		}
		printf("\n");
	}
	else {
		//printf("%I64d\n",tt);
		/*printf("%.3f\n",sum - double(tt/100));
		if(sum - double(tt/100) > 0.00001)
			tt++;*/
		sprintf(str1,"%lld",tt);
		double ii = str1[strlen(str1)-1] - '0';
		int jie;
		jie = strlen(str1) - ha;
		int j = (jie) % 3;
		for(int i = 0;str1[i] != '\0';i++) {
			if(i % 3 == j-1)
				printf("%c.",str1[i]);
			else
				printf("%c",str1[i]);
		}
		printf("\n");
	}
}


#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
#include<cstdlib>
using namespace std;

const int inf = 0x3f3f3f3f;

char str[1006];
double sum;

double tmp(char *a) {
	int flag = 0,n;
	int tt = strlen(a);
	if(tt > 2 && a[tt-3] == '.')
		flag = 1;
	int cc = 0;
	char aa[100];
	for(int i = 0;i < tt;i++) {
		if(a[i] != '.')
		aa[cc++] = a[i];
	}
	aa[cc] = '\0';
	n = atof(aa);
	double an;
	if(flag)
		an = n*1.0/100;
	else
		an = n;
	return an;
}

int main() {
	scanf("%s",str);
	sum = 0;
	int len = strlen(str),cnt;
	char num[100];
	for(int i = 0;i < len;i++) {
		cnt = 0;
		if(str[i] >= '0' && str[i] <= '9') {
			for(int j = i;;j++) {
				if(str[j] >= '0' && str[j] <= '9');
				else if(str[j] == '.');
				else {
					i = j;
					num[cnt] = '\0';
					cnt = 0;
					sum += tmp(num);
					break;
				}
				num[cnt++] = str[j];
			}
		}
	}
	//printf("%.2f\n",sum);
	char str1[100],str2[100];
	sprintf(str1,"%.2f",sum);
	int cas;
	for(cas = 0;str1[cas] != '\0';cas++) {
		if(str1[cas] == '.') {
			if(str1[cas+1] == '0' && str1[cas+2] == '0')
				str1[cas] = '\0';
			break;
		}
	}
	int ca = cas%3;
	int ss = strlen(str1),ii;
	//printf("%s",str1);
	if(ca > 0) {
		int si;
		for(si = 0;si < ca;si++)
			printf("%c",str1[si]);
		if(str1[si] != '.' && str1[si] != '\0')
			printf(".");
	}
	for(int i = ca;i < cas;i++) {
		if((i-ca+1) % 3 == 0 && i+1 != cas)
			printf("%c.",str1[i]);
		else
			printf("%c",str1[i]);
	}
	for(int i = cas;str1[i] != '\0';i++)
		printf("%c",str1[i]);
	printf("\n");
}


#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
#include<cstdlib>
using namespace std;

const int inf = 0x3f3f3f3f;

char str[1006];
double sum;

double tmp(char *a) {
	int flag = 0,n;
	int tt = strlen(a);
	if(tt > 2 && a[tt-3] == '.')
		flag = 1;
	int cc = 0;
	char aa[100];
	for(int i = 0;i < tt;i++) {
		if(a[i] != '.')
		aa[cc++] = a[i];
	}
	aa[cc] = '\0';
	n = atof(aa);
	double an;
	if(flag)
		an = n*1.0/100;
	else
		an = n;
	return an;
}

int main() {
	scanf("%s",str);
	sum = 0;
	int len = strlen(str),cnt;
	char num[100];
	for(int i = 0;i < len;i++) {
		cnt = 0;
		if(str[i] >= '0' && str[i] <= '9') {
			for(int j = i;;j++) {
				if(str[j] >= '0' && str[j] <= '9');
				else if(str[j] == '.');
				else {
					i = j;
					num[cnt] = '\0';
					cnt = 0;
					sum += tmp(num);
					break;
				}
				num[cnt++] = str[j];
			}
		}
	}
	//printf("%.2f\n",sum);
	char str1[100],str2[100];
	long long tt = sum*100;
	int ha = 2;
	if(tt % 100 == 0)
		ha = 0;
	else if(tt % 10 == 0)
		ha = 1;
	if(sum < 1 && ha == 1)
		printf("%.1f\n",sum);
	else if(sum < 1 && ha == 2)
		printf("%.2f\n",sum);
	else if(ha == 0){
		sprintf(str1,"%lld",(long long)sum);
		int jie;
		jie = strlen(str1) - ha;
		int j = (jie) % 3;
		for(int i = 0;str1[i] != '\0';i++) {
			if((i+1) % 3 == j && str1[i+1] != '\0')
				printf("%c.",str1[i]);
			else
				printf("%c",str1[i]);
		}
		printf("\n");
	}
	else {
		//printf("323\n");
		//printf("%I64d\n",tt);
		double ttt = double(tt);
		//printf("%.3f %.3f\n",sum,double(ttt/100));
		if(sum - double(ttt/100) > 0.00001)
			tt++;
		sprintf(str1,"%lld",tt);
		double ii = str1[strlen(str1)-1] - '0';
		int jie;
		jie = strlen(str1) - ha;
		int j = (jie) % 3;
		for(int i = 0;str1[i] != '\0';i++) {
			if((i+1) % 3 == j && str1[i+1] != '\0')
				printf("%c.",str1[i]);
			else
				printf("%c",str1[i]);
		}
		printf("\n");
	}
}


#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
#include<cstdlib>
using namespace std;

const int inf = 0x3f3f3f3f;

char str[1006];
double sum;

double tmp(char *a) {
	int flag = 0,n;
	int tt = strlen(a);
	if(tt > 2 && a[tt-3] == '.')
		flag = 1;
	int cc = 0;
	char aa[100];
	for(int i = 0;i < tt;i++) {
		if(a[i] != '.')
		aa[cc++] = a[i];
	}
	aa[cc] = '\0';
	n = atof(aa);
	double an;
	if(flag)
		an = n*1.0/100;
	else
		an = n;
	return an;
}

int main() {
	scanf("%s",str);
	sum = 0;
	int len = strlen(str),cnt;
	char num[100];
	for(int i = 0;i < len;i++) {
		cnt = 0;
		if(str[i] >= '0' && str[i] <= '9') {
			for(int j = i;;j++) {
				if(str[j] >= '0' && str[j] <= '9');
				else if(str[j] == '.');
				else {
					i = j;
					num[cnt] = '\0';
					cnt = 0;
					sum += tmp(num);
					break;
				}
				num[cnt++] = str[j];
			}
		}
	}
	//printf("%.2f\n",sum);
	char str1[100],str2[100];
	long long tt = sum*100;
	int ha = 2;
	if(tt % 100 == 0)
		ha = 0;
	else if(tt % 10 == 0)
		ha = 1;
	if(sum < 1 && ha == 1)
		printf("%.1f\n",sum);
	else if(sum < 1 && ha == 2)
		printf("%.2f\n",sum);
	else if(ha == 0){
		sprintf(str1,"%lld",(long long)sum);
		int jie;
		jie = strlen(str1);
		int j = (jie) % 3;
		for(int i = 0;str1[i] != '\0';i++) {
			if((i+1) % 3 == 0)
				printf("%c.",str1[i]);
			else
				printf("%c",str1[i]);
		}
		printf("\n");
	}
	else {
		//printf("%I64d\n",tt);
		if(sum - double(tt/100) > 0.00001)
			tt++;
		sprintf(str1,"%lld",tt);
		double ii = str1[strlen(str1)-1] - '0';
		int jie;
		jie = strlen(str1) - ha;
		int j = (jie) % 3;
		for(int i = 0;str1[i] != '\0';i++) {
			if(i % 3 == j-1)
				printf("%c.",str1[i]);
			else
				printf("%c",str1[i]);
		}
		printf("\n");
	}
}


#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
#include<cstdlib>
using namespace std;

const int inf = 0x3f3f3f3f;

char str[1006];
double sum;

double tmp(char *a) {
	int flag = 0,n;
	int tt = strlen(a);
	if(tt > 2 && a[tt-3] == '.')
		flag = 1;
	int cc = 0;
	char aa[100];
	for(int i = 0;i < tt;i++) {
		if(a[i] != '.')
		aa[cc++] = a[i];
	}
	aa[cc] = '\0';
	n = atof(aa);
	double an;
	if(flag)
		an = n*1.0/100;
	else
		an = n;
	return an;
}

int main() {
	scanf("%s",str);
	sum = 0;
	int len = strlen(str),cnt;
	char num[100];
	for(int i = 0;i < len;i++) {
		cnt = 0;
		if(str[i] >= '0' && str[i] <= '9') {
			for(int j = i;;j++) {
				if(str[j] >= '0' && str[j] <= '9');
				else if(str[j] == '.');
				else {
					i = j;
					num[cnt] = '\0';
					cnt = 0;
					sum += tmp(num);
					break;
				}
				num[cnt++] = str[j];
			}
		}
	}
	//printf("%.2f\n",sum);
	char str1[100],str2[100];
	long long tt = sum*100;
	int ha = 2;
	if(tt % 100 == 0)
		ha = 0;
	else if(tt % 10 == 0)
		ha = 1;
	if(sum < 1 && ha == 1)
		printf("%.1f\n",sum);
	else if(sum < 1 && ha == 2)
		printf("%.2f\n",sum);
	else if(ha == 0){
		sprintf(str1,"%lld",(long long)sum);
		int jie;
		jie = strlen(str1);
		int j = (jie) % 3;
		for(int i = 0;str1[i] != '\0';i++) {
			if((i+1) % 3 == 0)
				printf("%c.",str1[i]);
			else
				printf("%c",str1[i]);
		}
		printf("\n");
	}
	else {
		//printf("%I64d\n",tt);
		double ttt = double(tt);
		//printf("%.3f %.3f\n",sum,double(ttt/100));
		if(sum - double(ttt/100) > 0.00001)
			tt++;
		sprintf(str1,"%lld",tt);
		double ii = str1[strlen(str1)-1] - '0';
		int jie;
		jie = strlen(str1) - ha;
		int j = (jie) % 3;
		for(int i = 0;str1[i] != '\0';i++) {
			if(i % 3 == j-1)
				printf("%c.",str1[i]);
			else
				printf("%c",str1[i]);
		}
		printf("\n");
	}
}


#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
#include<cstdlib>
using namespace std;

const int inf = 0x3f3f3f3f;

char str[1006];
double sum;

double tmp(char *a) {
	int flag = 0,n;
	int tt = strlen(a);
	if(tt > 2 && a[tt-3] == '.')
		flag = 1;
	int cc = 0;
	char aa[100];
	for(int i = 0;i < tt;i++) {
		if(a[i] != '.')
		aa[cc++] = a[i];
	}
	aa[cc] = '\0';
	n = atof(aa);
	double an;
	if(flag)
		an = n*1.0/100;
	else
		an = n;
	return an;
}

int main() {
	scanf("%s",str);
	sum = 0;
	int len = strlen(str),cnt;
	char num[100];
	for(int i = 0;i < len;i++) {
		cnt = 0;
		if(str[i] >= '0' && str[i] <= '9') {
			for(int j = i;;j++) {
				if(str[j] >= '0' && str[j] <= '9');
				else if(str[j] == '.');
				else {
					i = j;
					num[cnt] = '\0';
					cnt = 0;
					sum += tmp(num);
					break;
				}
				num[cnt++] = str[j];
			}
		}
	}
	//printf("%.2f\n",sum);
	char str1[100],str2[100];
	long long tt = sum*100;
	int ha = 2;
	if(tt % 100 == 0)
		ha = 0;
	else if(tt % 10 == 0)
		ha = 1;
	if(sum < 1 && ha == 1)
		printf("%.1f\n",sum);
	else if(sum < 1 && ha == 2)
		printf("%.2f\n",sum);
	else if(ha == 0){
		sprintf(str1,"%lld",(long long)sum);
		int jie;
		jie = strlen(str1) - ha;
		int j = (jie) % 3;
		for(int i = 0;str1[i] != '\0';i++) {
			if(i % 3 == j-1 && str1[i+1] != '\0')
				printf("%c.",str1[i]);
			else
				printf("%c",str1[i]);
		}
		printf("\n");
	}
	else {
		//printf("%I64d\n",tt);
		double ttt = double(tt);
		//printf("%.3f %.3f\n",sum,double(ttt/100));
		if(sum - double(ttt/100) > 0.00001)
			tt++;
		sprintf(str1,"%lld",tt);
		double ii = str1[strlen(str1)-1] - '0';
		int jie;
		jie = strlen(str1) - ha;
		int j = (jie) % 3;
		for(int i = 0;str1[i] != '\0';i++) {
			if(i % 3 == j-1 && str1[i+1] != '\0')
				printf("%c.",str1[i]);
			else
				printf("%c",str1[i]);
		}
		printf("\n");
	}
}


#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
#include<cstdlib>
using namespace std;

const int inf = 0x3f3f3f3f;

char str[1006];
double sum;

double tmp(char *a) {
	int flag = 0,n;
	int tt = strlen(a);
	if(tt > 2 && a[tt-3] == '.')
		flag = 1;
	int cc = 0;
	char aa[100];
	for(int i = 0;i < tt;i++) {
		if(a[i] != '.')
		aa[cc++] = a[i];
	}
	aa[cc] = '\0';
	n = atof(aa);
	double an;
	if(flag)
		an = n*1.0/100;
	else
		an = n;
	return an;
}

int main() {
	scanf("%s",str);
	sum = 0;
	int len = strlen(str),cnt;
	char num[100];
	for(int i = 0;i < len;i++) {
		cnt = 0;
		if(str[i] >= '0' && str[i] <= '9') {
			for(int j = i;;j++) {
				if(str[j] >= '0' && str[j] <= '9');
				else if(str[j] == '.');
				else {
					i = j;
					num[cnt] = '\0';
					cnt = 0;
					sum += tmp(num);
					break;
				}
				num[cnt++] = str[j];
			}
		}
	}
	//printf("%.2f\n",sum);
	char str1[100],str2[100];
	sprintf(str1,"%.2f",sum);
	int cas;
	for(cas = 0;str1[cas] != '.' && str1[cas] != '\0';cas++);
	int ca = cas%3;
	int ss = strlen(str1),ii;
	for(ii = ss-1;ii > cas;ii--)
		if(str1[ii] != '0') break;
	if(str1[ii] == '.') str1[ii] = '\0';
	else str1[ii+1] = '\0';
	//printf("%s",str1);
	if(ca > 0) {
		int si;
		for(si = 0;si < ca;si++)
			printf("%c",str1[si]);
		if(str1[si] != '.' && str1[si] != '\0')
			printf(".");
	}
	for(int i = ca;i < cas;i++) {
		if((i-ca+1) % 3 == 0 && i+1 != cas)
			printf("%c.",str1[i]);
		else
			printf("%c",str1[i]);
	}
	for(int i = cas;str1[i] != '\0';i++)
		printf("%c",str1[i]);
	printf("\n");
}


#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
#include<cstdlib>
using namespace std;

const int inf = 0x3f3f3f3f;

char str[1006];
double sum;

double tmp(char *a) {
	int flag = 0,n;
	int tt = strlen(a);
	if(tt > 2 && a[tt-3] == '.')
		flag = 1;
	int cc = 0;
	char aa[100];
	for(int i = 0;i < tt;i++) {
		if(a[i] != '.')
		aa[cc++] = a[i];
	}
	aa[cc] = '\0';
	n = atof(aa);
	double an;
	if(flag)
		an = n*1.0/100;
	else
		an = n;
	return an;
}

int main() {
	scanf("%s",str);
	sum = 0;
	int len = strlen(str),cnt;
	char num[100];
	for(int i = 0;i < len;i++) {
		cnt = 0;
		if(str[i] >= '0' && str[i] <= '9') {
			for(int j = i;;j++) {
				if(str[j] >= '0' && str[j] <= '9');
				else if(str[j] == '.');
				else {
					i = j;
					num[cnt] = '\0';
					cnt = 0;
					sum += tmp(num);
					break;
				}
				num[cnt++] = str[j];
			}
		}
	}
	//printf("%.2f\n",sum);
	char str1[100],str2[100];
	sprintf(str1,"%.2f",sum);
	int cas;
	for(cas = 0;str1[cas] != '.' && str1[cas] != '\0';cas++);
	int ca = cas%3;
	int ss = strlen(str1),ii;
	for(ii = ss-1;ii > cas;ii--)
		if(str1[ii] != '0') break;
	if(str1[ii] == '.') str1[ii] = '\0';
	else str1[ii+1] = '\0';
	//printf("%s",str1);
	if(ca > 0) {
		int si;
		for(si = 0;si < ca;si++)
			printf("%c",str1[si]);
		if(str1[si] != '.')
			printf(".");
	}
	for(int i = ca;i < cas;i++) {
		if((i-ca+1) % 3 == 0 && i+1 != cas)
			printf("%c.",str1[i]);
		else
			printf("%c",str1[i]);
	}
	for(int i = cas;str1[i] != '\0';i++)
		printf("%c",str1[i]);
	printf("\n");
}


#include <bits/stdc++.h>
using namespace std;
char str[1005];
bool isNum(char x){
	if ('0'<=x && x<='9') return true;
	return false;
}
int x=0,y=0;
void Add(int l,int r){
	//cout<<l<<" "<<r<<endl;
	int r2=r;
	if (str[r-2]=='.'){
		r2=r-3;
		int temp=(str[r-1]-'0')*10+str[r]-'0';
		y+=temp;
	}
	int temp=0;
	for (int i=l;i<=r2;i++){
		if (str[i]=='.') continue;
		temp=temp*10+(str[i]-'0');
	}
	x+=temp;
}
int ans[10];
int main(){
	while (cin>>str){
		x=0,y=0;
		for (int i=0;str[i];i++){
			if (isNum(str[i])==true){
				int j;
				for (j=i;str[j];j++)
					if (isNum(str[j])==false && str[j]!='.')
						break;
				Add(i,j-1);
				i=j;
			}
		}
		//if (y>100){
		//	x+=y/100;
		//	y%=100;
		//}
		int k=0;
		int temp=x;
		while (temp){
			ans[k++]=temp%1000;
			temp/=1000;
		}
		if (k>0)
			cout<<ans[k-1];
		for (int i=k-2;i>=0;i--)
			printf(".%03d",ans[i]);
		if (k==0) cout<<0;
		if (0<y && y<100) printf(".%02d",y);
		if (100<=y) printf(".%03d\n", y);
		cout<<endl;
	}
	return 0;
}


#include <bits/stdc++.h>
using namespace std;
char str[1005];
bool isNum(char x){
	if ('0'<=x && x<='9') return true;
	return false;
}
int x=0,y=0;
void Add(int l,int r){
	//cout<<l<<" "<<r<<endl;
	int r2=r;
	if (str[r-2]=='.'){
		r2=r-3;
		int temp=(str[r-1]-'0')*10+str[r]-'0';
		y+=temp;
	}
	int temp=0;
	for (int i=l;i<=r2;i++){
		if (str[i]=='.') continue;
		temp=temp*10+(str[i]-'0');
	}
	x+=temp;
}
int ans[10];
int main(){
	while (cin>>str){
		x=0,y=0;
		for (int i=0;str[i];i++){
			if (isNum(str[i])==true){
				int j;
				for (j=i;str[j];j++)
					if (isNum(str[j])==false && str[j]!='.')
						break;
				Add(i,j-1);
				i=j;
			}
		}
		if (y>100){
			x+=y/100;
			y%=100;
		}
		int k=0;
		int temp=x;
		while (temp){
			ans[k++]=temp%1000;
			temp/=1000;
		}
		if (k>0)
			cout<<ans[k-1];
		for (int i=k-2;i>=0;i--)
			printf(".%03d",ans[i]);
		if (k==0) cout<<0;
		if (y) printf(".%02d",y);
		cout<<endl;
	}
	return 0;
}


#include <bits/stdc++.h>
using namespace std;
char str[1005];
bool isNum(char x){
	if ('0'<=x && x<='9') return true;
	return false;
}
int x=0,y=0;
void Add(int l,int r){
	//cout<<l<<" "<<r<<endl;
	int r2=r;
	if (str[r-2]=='.'){
		r2=r-3;
		int temp=(str[r-1]-'0')*10+str[r]-'0';
		y+=temp;
	}
	int temp=0;
	for (int i=l;i<=r2;i++){
		if (str[i]=='.') continue;
		temp=temp*10+(str[i]-'0');
	}
	x+=temp;
}
int ans[10];
int main(){
	while (cin>>str){
		x=0,y=0;
		for (int i=0;str[i];i++){
			if (isNum(str[i])==true){
				int j;
				for (j=i;str[j];j++)
					if (isNum(str[j])==false && str[j]!='.')
						break;
				Add(i,j-1);
				i=j;
			}
		}
		if (y>=100){
			x+=y/100;
			y%=100;
		}
		int k=0;
		int temp=x;
		while (temp){
			ans[k++]=temp%1000;
			temp/=1000;
		}
		if (k>0)
			cout<<ans[k-1];
		for (int i=k-2;i>=0;i--)
			printf(".%03d",ans[i]);
		if (k==0) cout<<0;
		if (y) printf(".%02d",y);
		cout<<endl;
	}
	return 0;
}


#include <bits/stdc++.h>

using namespace std;

int main()
{

    string s;
    cin >> s;

    long long sum = 0, num = 0, pos = -10;

    for (int i = 0; i < s.length(); i++) {
        if (s[i] == '.') {
            pos = i;
        } else if (int(s[i]) > 47 && int(s[i]) < 58) {
            num = num * 10 + s[i] - '0';
        } else {
            if (i - pos > 3) {
                num *= 100;
            }
            sum += num;
            num = 0;
        }
    }

    if (s.length() - pos > 3) {
        num *= 100;
    }
    sum += num;

    if (sum < 10) {
        cout << "0.0" << sum;
    } else if (sum < 100) {
        cout << "0." << sum;
    } else {
        vector<int> ans;

        ans.push_back(sum % 100);
        sum /= 100;

        while (sum > 0) {
            ans.push_back(sum % 1000);
            sum /= 1000;
        }

        for (int i = ans.size() - 1; i > 0; i--) {
            cout << ans[i] << '.';
        }
        cout << ans[0];
    }

    return 0;
}


#include <bits/stdc++.h>

using namespace std;

int main()
{

    string s;
    cin >> s;

    long long sum = 0, num = 0, pos = -10;

    for (int i = 0; i < s.length(); i++) {
        if (s[i] == '.') {
            pos = i;
        } else if (int(s[i]) > 47 && int(s[i]) < 58) {
            num = num * 10 + s[i] - '0';
        } else {
            if (i - pos > 3) {
                num *= 100;
            }
            sum += num;
            num = 0;
        }
    }

    if (s.length() - pos > 3) {
        num *= 100;
    }
    sum += num;

    if (sum < 10) {
        cout << "0.0" << sum;
    } else if (sum < 100) {
        cout << "0." << sum;
    } else {
        vector<int> ans;

        ans.push_back(sum % 100);
        sum /= 100;

        while (sum > 0) {
            ans.push_back(sum % 1000);
            sum /= 1000;
        }

        for (int i = ans.size() - 1; i > 1; i--) {
            if (i == ans.size() - 1 || ans[i] > 99) {
                cout << ans[i];
            } else if (ans[i] > 9) {
                cout << '0' << ans[i];
            } else {
                cout << "00" << ans[i];
            }
            cout << '.';
        }

        if (1 == ans.size() - 1 || ans[1] > 99) {
            cout << ans[1];
        }  else if (ans[1] > 9) {
            cout << '0' << ans[1];
        } else {
            cout << "00" << ans[1];
        }

        if (ans[0] > 9) {
            cout << '.' << ans[0];
        } else if (ans[0] > 0) {
            cout << ".0" << ans[0];
        }
    }

    return 0;
}


#include <bits/stdc++.h>

using namespace std;

int main()
{

    string s;
    cin >> s;

    long long sum = 0, num = 0, pos = -10;

    for (int i = 0; i < s.length(); i++) {
        if (s[i] == '.') {
            pos = i;
        } else if (int(s[i]) > 47 && int(s[i]) < 58) {
            num = num * 10 + s[i] - '0';
        } else {
            if (i - pos > 3) {
                num *= 100;
            }
            sum += num;
            num = 0;
        }
    }

    if (s.length() - pos > 3) {
        num *= 100;
    }
    sum += num;
    cout << sum << endl;

    if (sum < 10) {
        cout << "0.0" << sum;
    } else if (sum < 100) {
        cout << "0." << sum;
    } else {
        vector<int> ans;

        ans.push_back(sum % 100);
        sum /= 100;

        while (sum > 0) {
            ans.push_back(sum % 1000);
            sum /= 1000;
        }

        for (int i = ans.size() - 1; i > 1; i--) {
            if (i == ans.size() - 1 || ans[i] > 99) {
                cout << ans[i];
            } else if (ans[i] > 9) {
                cout << '0' << ans[i];
            } else {
                cout << "00" << ans[i];
            }
            cout << '.';
        }

        if (1 == ans.size() - 1 || ans[1] > 99) {
            cout << ans[1];
        }  else if (ans[1] > 9) {
            cout << '0' << ans[1];
        } else {
            cout << "00" << ans[1];
        }

        if (ans[0] > 9) {
            cout << '.' << ans[0];
        } else if (ans[0] > 0) {
            cout << ".0" << ans[0];
        }
    }

    return 0;
}


#include <bits/stdc++.h>

using namespace std;

int main()
{

    string s;
    cin >> s;

    long long sum = 0, num = 0, pos = -10;

    for (int i = 0; i < s.length(); i++) {
        if (s[i] == '.') {
            pos = i;
        } else if (int(s[i]) > 47 && int(s[i]) < 58) {
            num = num * 10 + s[i] - '0';
        } else {
            if (i - pos > 3) {
                num *= 100;
            }
            sum += num;
            num = 0;
        }
    }

    if (s.length() - pos > 3) {
        num *= 100;
    }
    sum += num;

    if (sum < 10) {
        cout << "0.0" << sum;
    } else if (sum < 100) {
        cout << "0." << sum;
    } else {
        vector<int> ans;

        ans.push_back(sum % 100);
        sum /= 100;

        while (sum > 0) {
            ans.push_back(sum % 1000);
            sum /= 1000;
        }

        for (int i = ans.size() - 1; i > 1; i--) {
            cout << ans[i] << '.';
        }
        cout << ans[1];
        if (ans[0] > 10) {
            cout << '.' << ans[0];
        } else if (ans[0] > 0) {
            cout << ".0" << ans[0];
        }
    }

    return 0;
}


#include <bits/stdc++.h>

using namespace std;

int main()
{
    string s;
    cin >> s;

    long long ans = 0, num = 0, pos = -10;

    for (int i = 0; i < s.length(); i++) {
        if (s[i] == '.') {
            pos = i;
        } else if (int(s[i]) > 47 && int(s[i]) < 58) {
            num = num * 10 + s[i] - '0';
        } else {
            if (i - pos >= 4) {
                num *= 100;
            }
            ans += num;
            num = 0;
        }
    }

    if (s.length() - pos >= 4) {
        num *= 100;
    }
    ans += num;

    if (ans < 10) {
        cout << "0.0" << ans;
        return 0;
    } else if (ans < 100) {
        cout << "0." << ans;
        return 0;
    }

    vector<char> sum;
    while(ans > 0) {
        sum.push_back(char(ans % 10 + '0'));
        ans /= 10;
    }

    cout << sum[sum.size() - 1];
    for (int i = sum.size() - 2; i > 1; i--) {
        if((i - 1) % 3 == 0 && i != 2) {
            cout << '.';
        }
        cout << sum[i];
    }

    cout << '.' << sum[1] << sum[0];

    return 0;
}


#include <bits/stdc++.h>

using namespace std;

int main()
{

    string s;
    cin >> s;

    long long sum = 0, num = 0, pos = -10;

    for (int i = 0; i < s.length(); i++) {
        if (s[i] == '.') {
            pos = i;
        } else if (int(s[i]) > 47 && int(s[i]) < 58) {
            num = num * 10 + s[i] - '0';
        } else {
            if (i - pos > 3) {
                num *= 100;
            }
            sum += num;
            num = 0;
        }
    }

    if (s.length() - pos > 3) {
        num *= 100;
    }
    sum += num;

    if (sum < 10) {
        cout << "0.0" << sum;
    } else if (sum < 100) {
        cout << "0." << sum;
    } else {
        vector<int> ans;

        ans.push_back(sum % 100);
        sum /= 100;

        while (sum > 0) {
            ans.push_back(sum % 1000);
            sum /= 1000;
        }

        for (int i = ans.size() - 1; i > 1; i--) {
            cout << ans[i] << '.';
        }
        cout << ans[1];
        if (ans[0] > 9) {
            cout << '.' << ans[0];
        } else if (ans[0] > 0) {
            cout << ".0" << ans[0];
        }
    }

    return 0;
}


//################################################################
//################################################################
//####In the Name Of Allah,the Most Gracious,the Most Merciful.###
//######Created by Sazid Rahman  Simanto on 2/21/16.##############
//# Copyright © 2016 Sazid Rahman  Simanto. All rights reserved.##
//################################################################
//################################################################

#include<bits/stdc++.h>
using namespace std;
#define MSET(a,x) memset(a,x,sizeof a)
#define FOR(i,x,y) for(int i=(x);i<=(y);i++)
#define FORR(i,x,y) for(int i=(x);i<(y);i++)
#define ROF(i,x,y) for(int i=(y);i>=(x);i--)
#define SQ(x) ((x)*(x))
#define ALL(x) (x).begin(),(x).end()
#define SZ(x) ((int)(x).size())
#define ff first
#define ss second
#define pb push_back
#define inf 1061109567
#define maxn 100001
#define esp 1e-8

typedef pair<double,double>ii;
typedef long long ll;
typedef unsigned long long ull;
typedef vector<ii>vii;
typedef vector<int>vi;

int gcd(int a, int b){
        if(b == 0) return a;
	return gcd( b , a % b);
}
int lcm(int a, int b){
	return a *( b / gcd( a, b));

}

int posMod(int a, int m)
{
        return (( a % m) + m) % m;
}

int Set(int N, int pos) {return N = N | (1 << pos);}
int reset(int N, int pos) {return N = N & ~ (1 << pos);}
bool check(int N, int pos) {return (bool) (N & (1 << pos));}

//freopen("input.txt", "r", stdin);
//freopen("output.txt", "w", stdout);

//################################################################
//##    Template Ends Here……                        		##
//################################################################
stack<char> st;
int mx = -1;
int cent, dollar;
int m[3] = {1, 1000, 1000000};
int d[7] = {1, 10, 100, 1000, 10000, 100000, 1000000};

int main()
{
        //std::ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);
        //freopen("output.txt", "w", stdout);
        string s;
        cin >> s;

        for(int i = 0; i < s.size();){

                if(s[i] >= 'a' && s[i] <= 'z'){
                        bool b = false;
                        int j;
                        for(j = i + 1; j < s.size(); j++){

                                if(s[j] >= 'a' && s[j] <= 'z' && !b) continue;
                                else if(s[j] >= '0' && s[j] <= '9' || s[j] == '.'){
                                        b = true;
                                        st.push(s[j]);
                                }
                                else if(s[j] >= 'a' && s[j] <= 'z' && b) break;
                        }
                        i = j;
                        int h = 0, dl = 0, mlt = 0;

                        while(!st.empty()){
                                char u = st.top();
                                st.pop();
                                if(u != '.'){
                                        h = h + (d[dl++] * (u - '0'));
                                        //cout << h <<endl;
                                }
                                if(u == '.' && dl == 2){
                                        cent += (h % 100);
                                        dollar += (h / 100);
                                        h = 0;
                                        dl = 0;
                                }
                                if((u == '.' || st.empty()) && (dl > 0 && dl <= 3)){
                                        if(mlt > mx) dollar =  dollar + (m[mlt] * h);
                                        else dollar += h;
                                        //cout << "dol "<< mlt <<" "<<mx << " "<<dollar <<endl;
                                        mx = max (mlt, mx);
                                        dl = 0;
                                        h = 0;
                                        mlt++;
                                }
                                //cout << h <<endl;
                                //cout << st.empty() <<" "<< dl <<" "<<h << endl;
                        }
                }
        }
        //cout << dollar << " :: "<<cent <<endl;
        vi res;
        while(dollar){
                res.pb(dollar%1000);
                dollar /= 1000;
        }
        reverse(ALL(res));
        if(!res.size()) cout <<0;
        FORR(i, 0, res.size()){
                if(i) cout<<".";
                printf("%d", res[i]);
        }
        if(cent) cout <<".";
        printf("%.2d", cent);
        cout <<endl;

        return 0;
}


//################################################################
//################################################################
//####In the Name Of Allah,the Most Gracious,the Most Merciful.###
//######Created by Sazid Rahman  Simanto on 2/21/16.##############
//# Copyright © 2016 Sazid Rahman  Simanto. All rights reserved.##
//################################################################
//################################################################

#include<bits/stdc++.h>
using namespace std;
#define MSET(a,x) memset(a,x,sizeof a)
#define FOR(i,x,y) for(int i=(x);i<=(y);i++)
#define FORR(i,x,y) for(int i=(x);i<(y);i++)
#define ROF(i,x,y) for(int i=(y);i>=(x);i--)
#define SQ(x) ((x)*(x))
#define ALL(x) (x).begin(),(x).end()
#define SZ(x) ((int)(x).size())
#define ff first
#define ss second
#define pb push_back
#define inf 1061109567
#define maxn 100001
#define esp 1e-8

typedef pair<double,double>ii;
typedef long long ll;
typedef unsigned long long ull;
typedef vector<ii>vii;
typedef vector<int>vi;

int gcd(int a, int b){
        if(b == 0) return a;
	return gcd( b , a % b);
}
int lcm(int a, int b){
	return a *( b / gcd( a, b));

}

int posMod(int a, int m)
{
        return (( a % m) + m) % m;
}

int Set(int N, int pos) {return N = N | (1 << pos);}
int reset(int N, int pos) {return N = N & ~ (1 << pos);}
bool check(int N, int pos) {return (bool) (N & (1 << pos));}

//freopen("input.txt", "r", stdin);
//freopen("output.txt", "w", stdout);

//################################################################
//##    Template Ends Here……                        		##
//################################################################
stack<char> st;
int mx = -1;
int cent, dollar;
int m[3] = {1, 1000, 1000000};
int d[7] = {1, 10, 100, 1000, 10000, 100000, 1000000};

int main()
{
        //std::ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);
        //freopen("output.txt", "w", stdout);
        string s;
        cin >> s;

        for(int i = 0; i < s.size();){

                if(s[i] >= 'a' && s[i] <= 'z'){
                        bool b = false;
                        int j;
                        for(j = i + 1; j < s.size(); j++){

                                if(s[j] >= 'a' && s[j] <= 'z' && !b) continue;
                                else if(s[j] >= '0' && s[j] <= '9' || s[j] == '.'){
                                        b = true;
                                        st.push(s[j]);
                                }
                                else if(s[j] >= 'a' && s[j] <= 'z' && b) break;
                        }
                        i = j;
                        int h = 0, dl = 0, mlt = 0;
                        bool bb = false;
                        while(!st.empty()){
                                char u = st.top();
                                st.pop();
                                if(u != '.'){
                                        h = h + (d[dl] * (u - '0'));
                                        dl++;
                                        //cout << h <<endl;
                                }
                                if((u == '.' || st.empty()) && dl == 2 && !bb){
                                        cent += h;
                                        dollar += (cent / 100);
                                        cent = cent % 100;
                                        h = 0;
                                        dl = 0;
                                        bb = true;
                                        //cout << cent <<" "<<dl<<endl;
                                }
                                if((u == '.' || st.empty()) && (dl > 0 && dl <= 3)){
                                        dollar =  dollar + (m[mlt] * h);
                                        //else dollar += h;
                                        //cout << "dol "<< mlt <<" "<<mx << " "<<dollar <<endl;
                                        mx = max (mlt, mx);
                                        dl = 0;
                                        h = 0;
                                        bb = true;
                                        mlt++;
                                }
                                //cout << h <<endl;
                                //cout << st.empty() <<" "<< dl <<" "<<h << endl;
                        }
                }
        }
        //cout << dollar << " :: "<<cent <<endl;

        vi res;
        while(dollar){
                res.pb(dollar%1000);
                dollar /= 1000;
        }
        reverse(ALL(res));
        if(!res.size()) cout <<0;
        FORR(i, 0, res.size()){
                if(i) cout<<".";
                printf("%d", res[i]);
        }
        if(cent){
                cout <<".";
                printf("%.2d", cent);
        }
        cout <<endl;

        return 0;
}


//################################################################
//################################################################
//####In the Name Of Allah,the Most Gracious,the Most Merciful.###
//######Created by Sazid Rahman  Simanto on 2/21/16.##############
//# Copyright © 2016 Sazid Rahman  Simanto. All rights reserved.##
//################################################################
//################################################################

#include<bits/stdc++.h>
using namespace std;
#define MSET(a,x) memset(a,x,sizeof a)
#define FOR(i,x,y) for(int i=(x);i<=(y);i++)
#define FORR(i,x,y) for(int i=(x);i<(y);i++)
#define ROF(i,x,y) for(int i=(y);i>=(x);i--)
#define SQ(x) ((x)*(x))
#define ALL(x) (x).begin(),(x).end()
#define SZ(x) ((int)(x).size())
#define ff first
#define ss second
#define pb push_back
#define inf 1061109567
#define maxn 100001
#define esp 1e-8

typedef pair<double,double>ii;
typedef long long ll;
typedef unsigned long long ull;
typedef vector<ii>vii;
typedef vector<int>vi;

int gcd(int a, int b){
        if(b == 0) return a;
	return gcd( b , a % b);
}
int lcm(int a, int b){
	return a *( b / gcd( a, b));

}

int posMod(int a, int m)
{
        return (( a % m) + m) % m;
}

int Set(int N, int pos) {return N = N | (1 << pos);}
int reset(int N, int pos) {return N = N & ~ (1 << pos);}
bool check(int N, int pos) {return (bool) (N & (1 << pos));}

//freopen("input.txt", "r", stdin);
//freopen("output.txt", "w", stdout);

//################################################################
//##    Template Ends Here……                        		##
//################################################################
stack<char> st;
int mx = -1;
int cent, dollar;
int m[3] = {1, 1000, 1000000};
int d[7] = {1, 10, 100, 1000, 10000, 100000, 1000000};

int main()
{
        //std::ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);
        //freopen("output.txt", "w", stdout);
        string s;
        cin >> s;

        for(int i = 0; i < s.size();){

                if(s[i] >= 'a' && s[i] <= 'z'){
                        bool b = false;
                        int j;
                        for(j = i + 1; j < s.size(); j++){

                                if(s[j] >= 'a' && s[j] <= 'z' && !b) continue;
                                else if(s[j] >= '0' && s[j] <= '9' || s[j] == '.'){
                                        b = true;
                                        st.push(s[j]);
                                }
                                else if(s[j] >= 'a' && s[j] <= 'z' && b) break;
                        }
                        i = j;
                        int h = 0, dl = 0, mlt = 0;
                        bool bb = false;
                        while(!st.empty()){
                                char u = st.top();
                                st.pop();
                                if(u != '.'){
                                        h = h + (d[dl] * (u - '0'));
                                        dl++;
                                        //cout << h <<endl;
                                }
                                if((u == '.' || st.empty()) && dl == 2 && !bb){
                                        cent += h;
                                        dollar += (cent / 100);
                                        cent = cent % 100;
                                        h = 0;
                                        dl = 0;
                                        bb = true;
                                        //cout << cent <<" "<<dl<<endl;
                                }
                                if((u == '.' || st.empty()) && (dl > 0 && dl <= 3)){
                                        dollar =  dollar + (m[mlt] * h);
                                        //else dollar += h;
                                        //cout << "dol "<< mlt <<" "<<mx << " "<<dollar <<endl;
                                        mx = max (mlt, mx);
                                        dl = 0;
                                        h = 0;
                                        bb = true;
                                        mlt++;
                                }
                                //cout << h <<endl;
                                //cout << st.empty() <<" "<< dl <<" "<<h << endl;
                        }
                }
        }
        //cout << dollar << " :: "<<cent <<endl;

        vi res;
        while(dollar){
                res.pb(dollar%1000);
                dollar /= 1000;
        }
        reverse(ALL(res));
        if(!res.size()) cout <<0;
        FORR(i, 0, res.size()){
                if(i) cout<<".";
                if(i) printf("%.3d", res[i]);
                else printf("%d", res[i]);
        }
        if(cent){
                cout <<".";
                printf("%.2d", cent);
        }
        cout <<endl;

        return 0;
}


//################################################################
//################################################################
//####In the Name Of Allah,the Most Gracious,the Most Merciful.###
//######Created by Sazid Rahman  Simanto on 2/21/16.##############
//# Copyright © 2016 Sazid Rahman  Simanto. All rights reserved.##
//################################################################
//################################################################

#include<bits/stdc++.h>
using namespace std;
#define MSET(a,x) memset(a,x,sizeof a)
#define FOR(i,x,y) for(int i=(x);i<=(y);i++)
#define FORR(i,x,y) for(int i=(x);i<(y);i++)
#define ROF(i,x,y) for(int i=(y);i>=(x);i--)
#define SQ(x) ((x)*(x))
#define ALL(x) (x).begin(),(x).end()
#define SZ(x) ((int)(x).size())
#define ff first
#define ss second
#define pb push_back
#define inf 1061109567
#define maxn 100001
#define esp 1e-8

typedef pair<double,double>ii;
typedef long long ll;
typedef unsigned long long ull;
typedef vector<ii>vii;
typedef vector<int>vi;

int gcd(int a, int b){
        if(b == 0) return a;
	return gcd( b , a % b);
}
int lcm(int a, int b){
	return a *( b / gcd( a, b));

}

int posMod(int a, int m)
{
        return (( a % m) + m) % m;
}

int Set(int N, int pos) {return N = N | (1 << pos);}
int reset(int N, int pos) {return N = N & ~ (1 << pos);}
bool check(int N, int pos) {return (bool) (N & (1 << pos));}

//freopen("input.txt", "r", stdin);
//freopen("output.txt", "w", stdout);

//################################################################
//##    Template Ends Here……                        		##
//################################################################
stack<char> st;
int mx = -1;
int cent, dollar;
int m[3] = {1, 1000, 1000000};
int d[7] = {1, 10, 100, 1000, 10000, 100000, 1000000};

int main()
{
        //std::ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);
        //freopen("output.txt", "w", stdout);
        string s;
        cin >> s;

        for(int i = 0; i < s.size();){

                if(s[i] >= 'a' && s[i] <= 'z'){
                        bool b = false;
                        int j;
                        for(j = i + 1; j < s.size(); j++){

                                if(s[j] >= 'a' && s[j] <= 'z' && !b) continue;
                                else if(s[j] >= '0' && s[j] <= '9' || s[j] == '.'){
                                        b = true;
                                        st.push(s[j]);
                                }
                                else if(s[j] >= 'a' && s[j] <= 'z' && b) break;
                        }
                        i = j;
                        int h = 0, dl = 0, mlt = 0;

                        while(!st.empty()){
                                char u = st.top();
                                st.pop();
                                if(u != '.'){
                                        h = h + (d[dl++] * (u - '0'));
                                        //cout << h <<endl;
                                }
                                if(u == '.' && dl == 2){
                                        cent += (h % 100);
                                        dollar += (h / 100);
                                        h = 0;
                                        dl = 0;
                                }
                                if((u == '.' || st.empty()) && (dl > 0 && dl <= 3)){
                                        if(mlt > mx) dollar =  dollar + (m[mlt] * h);
                                        else dollar += h;
                                        //cout << "dol "<< mlt <<" "<<mx << " "<<dollar <<endl;
                                        mx = max (mlt, mx);
                                        dl = 0;
                                        h = 0;
                                        mlt++;
                                }
                                //cout << h <<endl;
                                //cout << st.empty() <<" "<< dl <<" "<<h << endl;
                        }
                }
        }
        //cout << dollar << " :: "<<cent <<endl;
        dollar += (cent % 100);
        vi res;
        while(dollar){
                res.pb(dollar%1000);
                dollar /= 1000;
        }
        reverse(ALL(res));
        if(!res.size()) cout <<0;
        FORR(i, 0, res.size()){
                if(i) cout<<".";
                printf("%d", res[i]);
        }
        if(cent) cout <<".";
        printf("%.2d", cent);
        cout <<endl;

        return 0;
}


//################################################################
//################################################################
//####In the Name Of Allah,the Most Gracious,the Most Merciful.###
//######Created by Sazid Rahman  Simanto on 2/21/16.##############
//# Copyright © 2016 Sazid Rahman  Simanto. All rights reserved.##
//################################################################
//################################################################

#include<bits/stdc++.h>
using namespace std;
#define MSET(a,x) memset(a,x,sizeof a)
#define FOR(i,x,y) for(int i=(x);i<=(y);i++)
#define FORR(i,x,y) for(int i=(x);i<(y);i++)
#define ROF(i,x,y) for(int i=(y);i>=(x);i--)
#define SQ(x) ((x)*(x))
#define ALL(x) (x).begin(),(x).end()
#define SZ(x) ((int)(x).size())
#define ff first
#define ss second
#define pb push_back
#define inf 1061109567
#define maxn 100001
#define esp 1e-8

typedef pair<double,double>ii;
typedef long long ll;
typedef unsigned long long ull;
typedef vector<ii>vii;
typedef vector<int>vi;

int gcd(int a, int b){
        if(b == 0) return a;
	return gcd( b , a % b);
}
int lcm(int a, int b){
	return a *( b / gcd( a, b));

}

int posMod(int a, int m)
{
        return (( a % m) + m) % m;
}

int Set(int N, int pos) {return N = N | (1 << pos);}
int reset(int N, int pos) {return N = N & ~ (1 << pos);}
bool check(int N, int pos) {return (bool) (N & (1 << pos));}

//freopen("input.txt", "r", stdin);
//freopen("output.txt", "w", stdout);

//################################################################
//##    Template Ends Here……                        		##
//################################################################
stack<char> st;
int mx = -1;
int cent, dollar;
int m[3] = {1, 1000, 1000000};
int d[7] = {1, 10, 100, 1000, 10000, 100000, 1000000};

int main()
{
        //std::ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);
        //freopen("output.txt", "w", stdout);
        string s;
        cin >> s;

        for(int i = 0; i < s.size();){

                if(s[i] >= 'a' && s[i] <= 'z'){
                        bool b = false;
                        int j;
                        for(j = i + 1; j < s.size(); j++){

                                if(s[j] >= 'a' && s[j] <= 'z' && !b) continue;
                                else if(s[j] >= '0' && s[j] <= '9' || s[j] == '.'){
                                        b = true;
                                        st.push(s[j]);
                                }
                                else if(s[j] >= 'a' && s[j] <= 'z' && b) break;
                        }
                        i = j;
                        int h = 0, dl = 0, mlt = 0;

                        while(!st.empty()){
                                char u = st.top();
                                st.pop();
                                if(u != '.'){
                                        h = h + (d[dl++] * (u - '0'));
                                        //cout << h <<endl;
                                }
                                if(u == '.' && dl == 2){
                                        cent += (h % 100);
                                        dollar += (h / 100);
                                        h = 0;
                                        dl = 0;
                                }
                                if((u == '.' || st.empty()) && (dl > 0 && dl <= 3)){
                                        dollar =  dollar + (m[mlt] * h);
                                        //else dollar += h;
                                        //cout << "dol "<< mlt <<" "<<mx << " "<<dollar <<endl;
                                        mx = max (mlt, mx);
                                        dl = 0;
                                        h = 0;
                                        mlt++;
                                }
                                //cout << h <<endl;
                                //cout << st.empty() <<" "<< dl <<" "<<h << endl;
                        }
                }
        }
        //cout << dollar << " :: "<<cent <<endl;
        dollar += (cent / 100);
        vi res;
        while(dollar){
                res.pb(dollar%1000);
                dollar /= 1000;
        }
        reverse(ALL(res));
        if(!res.size()) cout <<0;
        FORR(i, 0, res.size()){
                if(i) cout<<".";
                printf("%d", res[i]);
        }
        if(cent) cout <<".";
        printf("%.2d", cent);
        cout <<endl;

        return 0;
}


//################################################################
//################################################################
//####In the Name Of Allah,the Most Gracious,the Most Merciful.###
//######Created by Sazid Rahman  Simanto on 2/21/16.##############
//# Copyright © 2016 Sazid Rahman  Simanto. All rights reserved.##
//################################################################
//################################################################

#include<bits/stdc++.h>
using namespace std;
#define MSET(a,x) memset(a,x,sizeof a)
#define FOR(i,x,y) for(int i=(x);i<=(y);i++)
#define FORR(i,x,y) for(int i=(x);i<(y);i++)
#define ROF(i,x,y) for(int i=(y);i>=(x);i--)
#define SQ(x) ((x)*(x))
#define ALL(x) (x).begin(),(x).end()
#define SZ(x) ((int)(x).size())
#define ff first
#define ss second
#define pb push_back
#define inf 1061109567
#define maxn 100001
#define esp 1e-8

typedef pair<double,double>ii;
typedef long long ll;
typedef unsigned long long ull;
typedef vector<ii>vii;
typedef vector<int>vi;

int gcd(int a, int b){
        if(b == 0) return a;
	return gcd( b , a % b);
}
int lcm(int a, int b){
	return a *( b / gcd( a, b));

}

int posMod(int a, int m)
{
        return (( a % m) + m) % m;
}

int Set(int N, int pos) {return N = N | (1 << pos);}
int reset(int N, int pos) {return N = N & ~ (1 << pos);}
bool check(int N, int pos) {return (bool) (N & (1 << pos));}

//freopen("input.txt", "r", stdin);
//freopen("output.txt", "w", stdout);

//################################################################
//##    Template Ends Here……                        		##
//################################################################
stack<char> st;
int mx = -1;
int cent, dollar;
int m[3] = {1, 1000, 1000000};
int d[7] = {1, 10, 100, 1000, 10000, 100000, 1000000};

int main()
{
        //std::ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);
        //freopen("output.txt", "w", stdout);
        string s;
        cin >> s;

        for(int i = 0; i < s.size();){

                if(s[i] >= 'a' && s[i] <= 'z'){
                        bool b = false;
                        int j;
                        for(j = i + 1; j < s.size(); j++){

                                if(s[j] >= 'a' && s[j] <= 'z' && !b) continue;
                                else if(s[j] >= '0' && s[j] <= '9' || s[j] == '.'){
                                        b = true;
                                        st.push(s[j]);
                                }
                                else if(s[j] >= 'a' && s[j] <= 'z' && b) break;
                        }
                        i = j;
                        int h = 0, dl = 0, mlt = 0;

                        while(!st.empty()){
                                char u = st.top();
                                st.pop();
                                if(u != '.'){
                                        h = h + (d[dl] * (u - '0'));
                                        dl++;
                                        //cout << h <<endl;
                                }
                                if((u == '.' || st.empty()) && dl == 2){
                                        cent += h;
                                        dollar += (cent / 100);
                                        cent = cent % 100;
                                        h = 0;
                                        dl = 0;
                                        //test0.50test0.50cout << cent <<" "<<dl<<endl;
                                }
                                if((u == '.' || st.empty()) && (dl > 0 && dl <= 3)){
                                        dollar =  dollar + (m[mlt] * h);
                                        //else dollar += h;
                                        //cout << "dol "<< mlt <<" "<<mx << " "<<dollar <<endl;
                                        mx = max (mlt, mx);
                                        dl = 0;
                                        h = 0;
                                        mlt++;
                                }
                                //cout << h <<endl;
                                //cout << st.empty() <<" "<< dl <<" "<<h << endl;
                        }
                }
        }
        //cout << dollar << " :: "<<cent <<endl;

        vi res;
        while(dollar){
                res.pb(dollar%1000);
                dollar /= 1000;
        }
        reverse(ALL(res));
        if(!res.size()) cout <<0;
        FORR(i, 0, res.size()){
                if(i) cout<<".";
                printf("%d", res[i]);
        }
        if(cent){
                cout <<".";
                printf("%.2d", cent);
        }
        cout <<endl;

        return 0;
}


//################################################################
//################################################################
//####In the Name Of Allah,the Most Gracious,the Most Merciful.###
//######Created by Sazid Rahman  Simanto on 2/21/16.##############
//# Copyright © 2016 Sazid Rahman  Simanto. All rights reserved.##
//################################################################
//################################################################

#include<bits/stdc++.h>
using namespace std;
#define MSET(a,x) memset(a,x,sizeof a)
#define FOR(i,x,y) for(int i=(x);i<=(y);i++)
#define FORR(i,x,y) for(int i=(x);i<(y);i++)
#define ROF(i,x,y) for(int i=(y);i>=(x);i--)
#define SQ(x) ((x)*(x))
#define ALL(x) (x).begin(),(x).end()
#define SZ(x) ((int)(x).size())
#define ff first
#define ss second
#define pb push_back
#define inf 1061109567
#define maxn 100001
#define esp 1e-8

typedef pair<double,double>ii;
typedef long long ll;
typedef unsigned long long ull;
typedef vector<ii>vii;
typedef vector<int>vi;

int gcd(int a, int b){
        if(b == 0) return a;
	return gcd( b , a % b);
}
int lcm(int a, int b){
	return a *( b / gcd( a, b));

}

int posMod(int a, int m)
{
        return (( a % m) + m) % m;
}

int Set(int N, int pos) {return N = N | (1 << pos);}
int reset(int N, int pos) {return N = N & ~ (1 << pos);}
bool check(int N, int pos) {return (bool) (N & (1 << pos));}

//freopen("input.txt", "r", stdin);
//freopen("output.txt", "w", stdout);

//################################################################
//##    Template Ends Here……                        		##
//################################################################
stack<char> st;
int mx = -1;
int cent, dollar;
int m[3] = {1, 1000, 1000000};
int d[7] = {1, 10, 100, 1000, 10000, 100000, 1000000};

int main()
{
        //std::ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);
        //freopen("output.txt", "w", stdout);
        string s;
        cin >> s;

        for(int i = 0; i < s.size();){

                if(s[i] >= 'a' && s[i] <= 'z'){
                        bool b = false;
                        int j;
                        for(j = i + 1; j < s.size(); j++){

                                if(s[j] >= 'a' && s[j] <= 'z' && !b) continue;
                                else if(s[j] >= '0' && s[j] <= '9' || s[j] == '.'){
                                        b = true;
                                        st.push(s[j]);
                                }
                                else if(s[j] >= 'a' && s[j] <= 'z' && b) break;
                        }
                        i = j;
                        int h = 0, dl = 0, mlt = 0;

                        while(!st.empty()){
                                char u = st.top();
                                st.pop();
                                if(u != '.'){
                                        h = h + (d[dl++] * (u - '0'));
                                        //cout << h <<endl;
                                }
                                if(u == '.' && dl == 2){
                                        cent += (h % 100);
                                        dollar += (h / 100);
                                        h = 0;
                                        dl = 0;
                                }
                                if((u == '.' || st.empty()) && (dl > 0 && dl <= 3)){
                                        dollar =  dollar + (m[mlt] * h);
                                        //else dollar += h;
                                        //cout << "dol "<< mlt <<" "<<mx << " "<<dollar <<endl;
                                        mx = max (mlt, mx);
                                        dl = 0;
                                        h = 0;
                                        mlt++;
                                }
                                //cout << h <<endl;
                                //cout << st.empty() <<" "<< dl <<" "<<h << endl;
                        }
                }
        }
        //cout << dollar << " :: "<<cent <<endl;

        vi res;
        while(dollar){
                res.pb(dollar%1000);
                dollar /= 1000;
        }
        reverse(ALL(res));
        if(!res.size()) cout <<0;
        FORR(i, 0, res.size()){
                if(i) cout<<".";
                printf("%d", res[i]);
        }
        if(cent){
                cout <<".";
                printf("%.2d", cent);
        }
        cout <<endl;

        return 0;
}


//################################################################
//################################################################
//####In the Name Of Allah,the Most Gracious,the Most Merciful.###
//######Created by Sazid Rahman  Simanto on 2/21/16.##############
//# Copyright © 2016 Sazid Rahman  Simanto. All rights reserved.##
//################################################################
//################################################################

#include<bits/stdc++.h>
using namespace std;
#define MSET(a,x) memset(a,x,sizeof a)
#define FOR(i,x,y) for(int i=(x);i<=(y);i++)
#define FORR(i,x,y) for(int i=(x);i<(y);i++)
#define ROF(i,x,y) for(int i=(y);i>=(x);i--)
#define SQ(x) ((x)*(x))
#define ALL(x) (x).begin(),(x).end()
#define SZ(x) ((int)(x).size())
#define ff first
#define ss second
#define pb push_back
#define inf 1061109567
#define maxn 100001
#define esp 1e-8

typedef pair<double,double>ii;
typedef long long ll;
typedef unsigned long long ull;
typedef vector<ii>vii;
typedef vector<int>vi;

int gcd(int a, int b){
        if(b == 0) return a;
	return gcd( b , a % b);
}
int lcm(int a, int b){
	return a *( b / gcd( a, b));

}

int posMod(int a, int m)
{
        return (( a % m) + m) % m;
}

int Set(int N, int pos) {return N = N | (1 << pos);}
int reset(int N, int pos) {return N = N & ~ (1 << pos);}
bool check(int N, int pos) {return (bool) (N & (1 << pos));}

//freopen("input.txt", "r", stdin);
//freopen("output.txt", "w", stdout);

//################################################################
//##    Template Ends Here……                        		##
//################################################################
stack<char> st;
int mx = -1;
int cent, dollar;
int m[3] = {1, 1000, 1000000};
int d[7] = {1, 10, 100, 1000, 10000, 100000, 1000000};

int main()
{
        //std::ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);
        //freopen("output.txt", "w", stdout);
        string s;
        cin >> s;

        for(int i = 0; i < s.size();){

                if(s[i] >= 'a' && s[i] <= 'z'){
                        bool b = false;
                        int j;
                        for(j = i + 1; j < s.size(); j++){

                                if(s[j] >= 'a' && s[j] <= 'z' && !b) continue;
                                else if(s[j] >= '0' && s[j] <= '9' || s[j] == '.'){
                                        b = true;
                                        st.push(s[j]);
                                }
                                else if(s[j] >= 'a' && s[j] <= 'z' && b) break;
                        }
                        i = j;
                        int h = 0, dl = 0, mlt = 0;

                        while(!st.empty()){
                                char u = st.top();
                                st.pop();
                                if(u != '.'){
                                        h = h + (d[dl++] * (u - '0'));
                                        //cout << h <<endl;
                                }
                                if(u == '.' && dl == 2){
                                        cent += (h % 100);
                                        dollar += (h / 100);
                                        h = 0;
                                        dl = 0;
                                }
                                if((u == '.' || st.empty()) && (dl > 0 && dl <= 3)){
                                        if(mlt >= mx) dollar =  dollar + (m[mlt] * h);
                                        else dollar += h;
                                        cout << "dol "<< mlt <<" "<<mx << " "<<dollar <<endl;
                                        mx = max (mlt, mx);
                                        dl = 0;
                                        h = 0;
                                        mlt++;
                                }
                                //cout << h <<endl;
                                //cout << st.empty() <<" "<< dl <<" "<<h << endl;
                        }
                }
        }
        //cout << dollar << " :: "<<cent <<endl;
        dollar += (cent / 100);
        vi res;
        while(dollar){
                res.pb(dollar%1000);
                dollar /= 1000;
        }
        reverse(ALL(res));
        if(!res.size()) cout <<0;
        FORR(i, 0, res.size()){
                if(i) cout<<".";
                printf("%d", res[i]);
        }
        if(cent) cout <<".";
        printf("%.2d", cent);
        cout <<endl;

        return 0;
}


//################################################################
//################################################################
//####In the Name Of Allah,the Most Gracious,the Most Merciful.###
//######Created by Sazid Rahman  Simanto on 2/21/16.##############
//# Copyright © 2016 Sazid Rahman  Simanto. All rights reserved.##
//################################################################
//################################################################

#include<bits/stdc++.h>
using namespace std;
#define MSET(a,x) memset(a,x,sizeof a)
#define FOR(i,x,y) for(int i=(x);i<=(y);i++)
#define FORR(i,x,y) for(int i=(x);i<(y);i++)
#define ROF(i,x,y) for(int i=(y);i>=(x);i--)
#define SQ(x) ((x)*(x))
#define ALL(x) (x).begin(),(x).end()
#define SZ(x) ((int)(x).size())
#define ff first
#define ss second
#define pb push_back
#define inf 1061109567
#define maxn 100001
#define esp 1e-8

typedef pair<double,double>ii;
typedef long long ll;
typedef unsigned long long ull;
typedef vector<ii>vii;
typedef vector<int>vi;

int gcd(int a, int b){
        if(b == 0) return a;
	return gcd( b , a % b);
}
int lcm(int a, int b){
	return a *( b / gcd( a, b));

}

int posMod(int a, int m)
{
        return (( a % m) + m) % m;
}

int Set(int N, int pos) {return N = N | (1 << pos);}
int reset(int N, int pos) {return N = N & ~ (1 << pos);}
bool check(int N, int pos) {return (bool) (N & (1 << pos));}

//freopen("input.txt", "r", stdin);
//freopen("output.txt", "w", stdout);

//################################################################
//##    Template Ends Here……                        		##
//################################################################
stack<char> st;
int mx = -1;
int cent, dollar;
int m[3] = {1, 1000, 1000000};
int d[7] = {1, 10, 100, 1000, 10000, 100000, 1000000};

int main()
{
        //std::ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);
        //freopen("output.txt", "w", stdout);
        string s;
        cin >> s;

        for(int i = 0; i < s.size();){

                if(s[i] >= 'a' && s[i] <= 'z'){
                        bool b = false;
                        int j;
                        for(j = i + 1; j < s.size(); j++){

                                if(s[j] >= 'a' && s[j] <= 'z' && !b) continue;
                                else if(s[j] >= '0' && s[j] <= '9' || s[j] == '.'){
                                        b = true;
                                        st.push(s[j]);
                                }
                                else if(s[j] >= 'a' && s[j] <= 'z' && b) break;
                        }
                        i = j;
                        int h = 0, dl = 0, mlt = 0;

                        while(!st.empty()){
                                char u = st.top();
                                st.pop();
                                if(u != '.'){
                                        h = h + (d[dl++] * (u - '0'));
                                        //cout << h <<endl;
                                }
                                if(u == '.' && dl == 2){
                                        cent += (h % 100);
                                        dollar += (h / 100);
                                        h = 0;
                                        dl = 0;
                                }
                                if((u == '.' || st.empty()) && (dl > 0 && dl <= 3)){
                                        if(mlt > mx) dollar =  dollar + (m[mlt] * h);
                                        else dollar += h;
                                        //cout << "dol "<< mlt <<" "<<mx << " "<<dollar <<endl;
                                        mx = max (mlt, mx);
                                        dl = 0;
                                        h = 0;
                                        mlt++;
                                }
                                //cout << h <<endl;
                                //cout << st.empty() <<" "<< dl <<" "<<h << endl;
                        }
                }
        }
        //cout << dollar << " :: "<<cent <<endl;
        dollar += (cent / 100);
        vi res;
        while(dollar){
                res.pb(dollar%1000);
                dollar /= 1000;
        }
        reverse(ALL(res));
        if(!res.size()) cout <<0;
        FORR(i, 0, res.size()){
                if(i) cout<<".";
                printf("%d", res[i]);
        }
        if(cent) cout <<".";
        printf("%.2d", cent);
        cout <<endl;

        return 0;
}


//################################################################
//################################################################
//####In the Name Of Allah,the Most Gracious,the Most Merciful.###
//######Created by Sazid Rahman  Simanto on 2/21/16.##############
//# Copyright © 2016 Sazid Rahman  Simanto. All rights reserved.##
//################################################################
//################################################################

#include<bits/stdc++.h>
using namespace std;
#define MSET(a,x) memset(a,x,sizeof a)
#define FOR(i,x,y) for(int i=(x);i<=(y);i++)
#define FORR(i,x,y) for(int i=(x);i<(y);i++)
#define ROF(i,x,y) for(int i=(y);i>=(x);i--)
#define SQ(x) ((x)*(x))
#define ALL(x) (x).begin(),(x).end()
#define SZ(x) ((int)(x).size())
#define ff first
#define ss second
#define pb push_back
#define inf 1061109567
#define maxn 100001
#define esp 1e-8

typedef pair<double,double>ii;
typedef long long ll;
typedef unsigned long long ull;
typedef vector<ii>vii;
typedef vector<int>vi;

int gcd(int a, int b){
        if(b == 0) return a;
	return gcd( b , a % b);
}
int lcm(int a, int b){
	return a *( b / gcd( a, b));

}

int posMod(int a, int m)
{
        return (( a % m) + m) % m;
}

int Set(int N, int pos) {return N = N | (1 << pos);}
int reset(int N, int pos) {return N = N & ~ (1 << pos);}
bool check(int N, int pos) {return (bool) (N & (1 << pos));}

//freopen("input.txt", "r", stdin);
//freopen("output.txt", "w", stdout);

//################################################################
//##    Template Ends Here……                        		##
//################################################################
stack<char> st;
int mx = -1;
int cent, dollar;
int m[3] = {1, 1000, 1000000};
int d[7] = {1, 10, 100, 1000, 10000, 100000, 1000000};

int main()
{
        //std::ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);
        //freopen("output.txt", "w", stdout);
        string s;
        cin >> s;

        for(int i = 0; i < s.size();){

                if(s[i] >= 'a' && s[i] <= 'z'){
                        bool b = false;
                        int j;
                        for(j = i + 1; j < s.size(); j++){

                                if(s[j] >= 'a' && s[j] <= 'z' && !b) continue;
                                else if(s[j] >= '0' && s[j] <= '9' || s[j] == '.'){
                                        b = true;
                                        st.push(s[j]);
                                }
                                else if(s[j] >= 'a' && s[j] <= 'z' && b) break;
                        }
                        i = j;
                        int h = 0, dl = 0, mlt = 0;

                        while(!st.empty()){
                                char u = st.top();
                                st.pop();
                                if(u != '.'){
                                        h = h + (d[dl++] * (u - '0'));
                                        //cout << h <<endl;
                                }
                                if(u == '.' && dl == 2){
                                        cent += (h % 100);
                                        dollar += (h / 100);
                                        h = 0;
                                        dl = 0;
                                }
                                if((u == '.' || st.empty()) && (dl > 0 && dl <= 3)){
                                        if(mlt >= mx) dollar =  dollar + (m[mlt] * h);
                                        else dollar += h;
                                        //cout << "dol "<< mlt <<" "<<mx << " "<<dollar <<endl;
                                        mx = max (mlt, mx);
                                        dl = 0;
                                        h = 0;
                                        mlt++;
                                }
                                //cout << h <<endl;
                                //cout << st.empty() <<" "<< dl <<" "<<h << endl;
                        }
                }
        }
        //cout << dollar << " :: "<<cent <<endl;
        dollar += (cent / 100);
        vi res;
        while(dollar){
                res.pb(dollar%1000);
                dollar /= 1000;
        }
        reverse(ALL(res));
        if(!res.size()) cout <<0;
        FORR(i, 0, res.size()){
                if(i) cout<<".";
                printf("%d", res[i]);
        }
        if(cent) cout <<".";
        printf("%.2d", cent);
        cout <<endl;

        return 0;
}


/*

    author : s@if

*/

#include<bits/stdc++.h>
using namespace std;
#define NIL -1
#define fi first
#define sec second
#define MAX INT_MAX
#define INF 99999999
#define ll long long
#define PI acos(-1.0)
#define MOD 1000000007
#define PLL pair<ll,ll>
#define PII pair<int,int>
#define ull unsigned long long
#define triplell pair<pair<ll,ll> , ll>
#define triple pair<pair<int,int> , int>
#define For(i,n) for(int i=0;i<(int)n;i++)
#define Forn(i,a,b) for(int i=(int)a;i<=(int)b;i++)
#define forba(i,a,b) for(int i=(int)b;i>=(int)a;i--)

bool Check(int N , int pos)	{	return (bool) (N & (1<<pos));}
int Set(int N, int pos) {	return N = N | (1<<pos);}

int fx[]={+0,+0,+1,-1,-1,+1,-1,+1};
int fy[]={-1,+1,+0,+0,+1,+1,-1,-1};
int hr[]={-2,-2,-1,+1,+2,+2,-1,+1};
int hc[]={+1,-1,+2,+2,-1,+1,-2,-2};
int dx[]={+1,-1,+0,+0};
int dy[]={+0,+0,+1,-1};

const int MAXN = (int)1e5+9;

bool is_digit(char ch)
{
	if(ch>='0' && ch<='9')
		return true;

	return false;
}

int main()
{
/*	freopen("input.txt","r",stdin);
    freopen("output.txt","w",stdout);
    ios_base::sync_with_stdio(false);
    cin.tie(0);
    cout.tie(0);  */

    int i,j,k,l,m,n,p,q,x,y,u,v,r,tc,t;

    string s;

    int dollar = 0, cent = 0;

    cin>>s;

    l = s.size();

    for(i=0 ; i<l ; )
    {
    	j = i;

    	int d=0;
    	while(j<l && !is_digit(s[j]))	j++;

    	int num = 0;

    	while(j<l && is_digit(s[j]))
    	{
    		num = num*10+(s[j] - '0');
    		j++;
		}
		d+=num;

		if(s[j]!='.')
		{
			i=j;
			dollar+=d;
			continue;
		}
		j++;

		num = 0 ;
		int cnt = 0;
		while(j<l && is_digit(s[j]))
		{
			cnt++;
			num = num*10+(s[j]-'0');
			j++;
		}
		if(cnt==2)
		{
		    dollar+=d;
			cent+=num;
			i=j;
			continue;
		}
		else if(cnt==3)
		{
		   // cout<<d<<" ";
			d= d*1000+num;

			if(s[j]!='.')
			{
				i=j;
				dollar+=d;
				continue;
			}

			j++;

			cnt = 0, num = 0;
			while(j<l && is_digit(s[j]))
			{
				cnt++;
				num = num * 10 + (s[j]-'0');
				j++;
			}

			if(cnt==3)
			{
				d = d*1000+num;
				if(s[j]!='.')
				{
					i=j;
					dollar+=d;
					continue;
				}

				j++;

				num = 0;
				while(j<l && is_digit(s[j]))
				{
					num = num*10+(s[j]-'0');
					j++;
				}

				cent+=num;
				i=j;
			}
			else{
                dollar+=d;
                cent+=num;
			}

			i=j;
		}
	}

	dollar+=cent/100;
	cent%=100;

	stringstream sso;
	sso<<dollar;
	sso>>s;
	//cout<<s<<endl;

	string ss = "";

	for(i=s.size()-1 , j = 1;i>=0;i--,j++)
    {
        ss+=s[i];
        if(j%3==0)
            ss+=".";
    }
    reverse(ss.begin(),ss.end());
    cout<<ss<<".";;

    if(cent>0 && cent<9)
        cout<<0;
    if(cent>0)
    cout<<cent<<endl;

	//main();

    return 0;
}


/*

    author : s@if

*/

#include<bits/stdc++.h>
using namespace std;
#define NIL -1
#define fi first
#define sec second
#define MAX INT_MAX
#define INF 99999999
#define ll long long
#define PI acos(-1.0)
#define MOD 1000000007
#define PLL pair<ll,ll>
#define PII pair<int,int>
#define ull unsigned long long
#define triplell pair<pair<ll,ll> , ll>
#define triple pair<pair<int,int> , int>
#define For(i,n) for(int i=0;i<(int)n;i++)
#define Forn(i,a,b) for(int i=(int)a;i<=(int)b;i++)
#define forba(i,a,b) for(int i=(int)b;i>=(int)a;i--)

bool Check(int N , int pos)	{	return (bool) (N & (1<<pos));}
int Set(int N, int pos) {	return N = N | (1<<pos);}

int fx[]={+0,+0,+1,-1,-1,+1,-1,+1};
int fy[]={-1,+1,+0,+0,+1,+1,-1,-1};
int hr[]={-2,-2,-1,+1,+2,+2,-1,+1};
int hc[]={+1,-1,+2,+2,-1,+1,-2,-2};
int dx[]={+1,-1,+0,+0};
int dy[]={+0,+0,+1,-1};

const int MAXN = (int)1e5+9;

bool is_digit(char ch)
{
	if(ch>='0' && ch<='9')
		return true;

	return false;
}

int main()
{
/*	freopen("input.txt","r",stdin);
    freopen("output.txt","w",stdout);
    ios_base::sync_with_stdio(false);
    cin.tie(0);
    cout.tie(0);  */

    int i,j,k,l,m,n,p,q,x,y,u,v,r,tc,t;

    string s;

    int dollar = 0, cent = 0;

    cin>>s;

    l = s.size();

    for(i=0 ; i<l ; )
    {
    	j = i;

    	int d=0;
    	while(j<l && !is_digit(s[j]))	j++;

    	int num = 0;

    	while(j<l && is_digit(s[j]))
    	{
    		num = num*10+(s[j] - '0');
    		j++;
		}
		d+=num;

		if(s[j]!='.')
		{
			i=j;
			dollar+=d;
			continue;
		}
		j++;

		num = 0 ;
		int cnt = 0;
		while(j<l && is_digit(s[j]))
		{
			cnt++;
			num = num*10+(s[j]-'0');
			j++;
		}
		if(cnt==2)
		{
		    dollar+=d;
			cent+=num;
			i=j;
			continue;
		}
		else if(cnt==3)
		{
		    cout<<d<<" ";
			d= d*1000+num;

			if(s[j]!='.')
			{
				i=j;
				dollar+=d;
				continue;
			}

			j++;

			cnt = 0, num = 0;
			while(j<l && is_digit(s[j]))
			{
				cnt++;
				num = num * 10 + (s[j]-'0');
				j++;
			}

			if(cnt==3)
			{
				d = d*1000+num;
				if(s[j]!='.')
				{
					i=j;
					dollar+=d;
					continue;
				}

				j++;

				num = 0;
				while(j<l && is_digit(s[j]))
				{
					num = num*10+(s[j]-'0');
					j++;
				}

				cent+=num;
				i=j;
			}
			else{
                dollar+=d;
                cent+=num;
			}

			i=j;
		}
	}

	dollar+=cent/100;
	cent%=100;

	stringstream sso;
	sso<<dollar;
	sso>>s;
	//cout<<s<<endl;

	string ss = "";

	for(i=s.size()-1 , j = 1;i>=0;i--,j++)
    {
        ss+=s[i];
        if(j%3==0)
            ss+=".";
    }
    reverse(ss.begin(),ss.end());
    cout<<ss<<".";;

    if(cent<9)
        cout<<0;
    cout<<cent<<endl;

	//main();

    return 0;
}


/*

    author : s@if

*/

#include<bits/stdc++.h>
using namespace std;
#define NIL -1
#define fi first
#define sec second
#define MAX INT_MAX
#define INF 99999999
#define ll long long
#define PI acos(-1.0)
#define MOD 1000000007
#define PLL pair<ll,ll>
#define PII pair<int,int>
#define ull unsigned long long
#define triplell pair<pair<ll,ll> , ll>
#define triple pair<pair<int,int> , int>
#define For(i,n) for(int i=0;i<(int)n;i++)
#define Forn(i,a,b) for(int i=(int)a;i<=(int)b;i++)
#define forba(i,a,b) for(int i=(int)b;i>=(int)a;i--)

bool Check(int N , int pos)	{	return (bool) (N & (1<<pos));}
int Set(int N, int pos) {	return N = N | (1<<pos);}

int fx[]={+0,+0,+1,-1,-1,+1,-1,+1};
int fy[]={-1,+1,+0,+0,+1,+1,-1,-1};
int hr[]={-2,-2,-1,+1,+2,+2,-1,+1};
int hc[]={+1,-1,+2,+2,-1,+1,-2,-2};
int dx[]={+1,-1,+0,+0};
int dy[]={+0,+0,+1,-1};

const int MAXN = (int)1e5+9;

bool is_digit(char ch)
{
	if(ch>='0' && ch<='9')
		return true;

	return false;
}

int main()
{
/*	freopen("input.txt","r",stdin);
    freopen("output.txt","w",stdout);
    ios_base::sync_with_stdio(false);
    cin.tie(0);
    cout.tie(0);  */

    int i,j,k,l,m,n,p,q,x,y,u,v,r,tc,t;

    string s;

    int dollar = 0, cent = 0;

    cin>>s;

    l = s.size();

    for(i=0 ; i<l ; )
    {
    	j = i;

    	int d=0;
    	while(j<l && !is_digit(s[j]))	j++;

    	int num = 0;

    	while(j<l && is_digit(s[j]))
    	{
    		num = num*10+(s[j] - '0');
    		j++;
		}
		d+=num;

		if(s[j]!='.')
		{
			i=j;
			dollar+=d;
			continue;
		}
		j++;

		num = 0 ;
		int cnt = 0;
		while(j<l && is_digit(s[j]))
		{
			cnt++;
			num = num*10+(s[j]-'0');
			j++;
		}
		if(cnt==2)
		{
		    dollar+=d;
			cent+=num;
			i=j;
			continue;
		}
		else if(cnt==3)
		{
		   // cout<<d<<" ";
			d= d*1000+num;

			if(s[j]!='.')
			{
				i=j;
				dollar+=d;
				continue;
			}

			j++;

			cnt = 0, num = 0;
			while(j<l && is_digit(s[j]))
			{
				cnt++;
				num = num * 10 + (s[j]-'0');
				j++;
			}

			if(cnt==3)
			{
				d = d*1000+num;
				if(s[j]!='.')
				{
					i=j;
					dollar+=d;
					continue;
				}

				j++;

				num = 0;
				while(j<l && is_digit(s[j]))
				{
					num = num*10+(s[j]-'0');
					j++;
				}

				cent+=num;
				i=j;
			}
			else{
                dollar+=d;
                cent+=num;
			}

			i=j;
		}
	}

	dollar+=cent/100;
	cent%=100;

	stringstream sso;
	sso<<dollar;
	sso>>s;
	//cout<<s<<endl;

	string ss = "";

	for(i=s.size()-1 , j = 1;i>=0;i--,j++)
    {
        ss+=s[i];
        if(j%3==0 && i>0)
            ss+=".";
    }
    reverse(ss.begin(),ss.end());
    cout<<ss;

    if(cent>0 && cent<9)
        cout<<"."<<0<<cent<<endl;
    else if(cent>9)
    cout<<"."<<cent<<endl;

	//main();

    return 0;
}


/*

    author : s@if

*/

#include<bits/stdc++.h>
using namespace std;
#define NIL -1
#define fi first
#define sec second
#define MAX INT_MAX
#define INF 99999999
#define ll long long
#define PI acos(-1.0)
#define MOD 1000000007
#define PLL pair<ll,ll>
#define PII pair<int,int>
#define ull unsigned long long
#define triplell pair<pair<ll,ll> , ll>
#define triple pair<pair<int,int> , int>
#define For(i,n) for(int i=0;i<(int)n;i++)
#define Forn(i,a,b) for(int i=(int)a;i<=(int)b;i++)
#define forba(i,a,b) for(int i=(int)b;i>=(int)a;i--)

bool Check(int N , int pos)	{	return (bool) (N & (1<<pos));}
int Set(int N, int pos) {	return N = N | (1<<pos);}

int fx[]={+0,+0,+1,-1,-1,+1,-1,+1};
int fy[]={-1,+1,+0,+0,+1,+1,-1,-1};
int hr[]={-2,-2,-1,+1,+2,+2,-1,+1};
int hc[]={+1,-1,+2,+2,-1,+1,-2,-2};
int dx[]={+1,-1,+0,+0};
int dy[]={+0,+0,+1,-1};

const int MAXN = (int)1e5+9;

bool is_digit(char ch)
{
	if(ch>='0' && ch<='9')
		return true;

	return false;
}

int main()
{
/*	freopen("input.txt","r",stdin);
    freopen("output.txt","w",stdout);
    ios_base::sync_with_stdio(false);
    cin.tie(0);
    cout.tie(0);  */

    int i,j,k,l,m,n,p,q,x,y,u,v,r,tc,t;

    string s;

    int dollar = 0, cent = 0;

    cin>>s;

    l = s.size();

    for(i=0 ; i<l ; )
    {
    	j = i;

    	int d=0;
    	while(j<l && !is_digit(s[j]))	j++;

    	int num = 0;

    	while(j<l && is_digit(s[j]))
    	{
    		num = num*10+(s[j] - '0');
    		j++;
		}
		d+=num;

		if(s[j]!='.')
		{
			i=j;
			dollar+=d;
			continue;
		}
		j++;

		num = 0 ;
		int cnt = 0;
		while(j<l && is_digit(s[j]))
		{
			cnt++;
			num = num*10+(s[j]-'0');
			j++;
		}
		if(cnt==2)
		{
		    dollar+=d;
			cent+=num;
			i=j;
			continue;
		}
		else if(cnt==3)
		{
		   // cout<<d<<" ";
			d= d*1000+num;

			if(s[j]!='.')
			{
				i=j;
				dollar+=d;
				continue;
			}

			j++;

			cnt = 0, num = 0;
			while(j<l && is_digit(s[j]))
			{
				cnt++;
				num = num * 10 + (s[j]-'0');
				j++;
			}

			if(cnt==3)
			{
				d = d*1000+num;
				if(s[j]!='.')
				{
					i=j;
					dollar+=d;
					continue;
				}

				j++;

				num = 0;
				while(j<l && is_digit(s[j]))
				{
					num = num*10+(s[j]-'0');
					j++;
				}

				cent+=num;
				i=j;
			}
			else{
                dollar+=d;
                cent+=num;
			}

			i=j;
		}
	}

	dollar+=cent/100;
	cent%=100;

	stringstream sso;
	sso<<dollar;
	sso>>s;
	//cout<<s<<endl;

	string ss = "";

	for(i=s.size()-1 , j = 1;i>=0;i--,j++)
    {
        ss+=s[i];
        if(j%3==0)
            ss+=".";
    }
    reverse(ss.begin(),ss.end());
    cout<<ss;

    if(cent>0 && cent<9)
        cout<<"."<<0<<cent<<endl;
    else if(cent>9)
    cout<<"."<<cent<<endl;

	//main();

    return 0;
}


/*

    author : s@if

*/

#include<bits/stdc++.h>
using namespace std;
#define NIL -1
#define fi first
#define sec second
#define MAX INT_MAX
#define INF 99999999
#define ll long long
#define PI acos(-1.0)
#define MOD 1000000007
#define PLL pair<ll,ll>
#define PII pair<int,int>
#define ull unsigned long long
#define triplell pair<pair<ll,ll> , ll>
#define triple pair<pair<int,int> , int>
#define For(i,n) for(int i=0;i<(int)n;i++)
#define Forn(i,a,b) for(int i=(int)a;i<=(int)b;i++)
#define forba(i,a,b) for(int i=(int)b;i>=(int)a;i--)

bool Check(int N , int pos)	{	return (bool) (N & (1<<pos));}
int Set(int N, int pos) {	return N = N | (1<<pos);}

int fx[]={+0,+0,+1,-1,-1,+1,-1,+1};
int fy[]={-1,+1,+0,+0,+1,+1,-1,-1};
int hr[]={-2,-2,-1,+1,+2,+2,-1,+1};
int hc[]={+1,-1,+2,+2,-1,+1,-2,-2};
int dx[]={+1,-1,+0,+0};
int dy[]={+0,+0,+1,-1};

const int MAXN = (int)1e5+9;

bool is_digit(char ch)
{
	if(ch>='0' && ch<='9')
		return true;

	return false;
}

int main()
{
/*	freopen("input.txt","r",stdin);
    freopen("output.txt","w",stdout);
    ios_base::sync_with_stdio(false);
    cin.tie(0);
    cout.tie(0);  */

    int i,j,k,l,m,n,p,q,x,y,u,v,r,tc,t;

    string s;

    int dollar = 0, cent = 0;

    cin>>s;

    l = s.size();

    for(i=0 ; i<l ; )
    {
    	j = i;

    	int d=0;
    	while(j<l && !is_digit(s[j]))	j++;

    	int num = 0;

    	while(j<l && is_digit(s[j]))
    	{
    		num = num*10+(s[j] - '0');
    		j++;
		}
		d+=num;

		if(s[j]!='.')
		{
			i=j;
			dollar+=d;
			continue;
		}
		j++;

		num = 0 ;
		int cnt = 0;
		while(j<l && is_digit(s[j]))
		{
			cnt++;
			num = num*10+(s[j]-'0');
			j++;
		}
		if(cnt==2)
		{
		    dollar+=d;
			cent+=num;
			i=j;
			continue;
		}
		else if(cnt==3)
		{
		   // cout<<d<<" ";
			d= d*1000+num;

			if(s[j]!='.')
			{
				i=j;
				dollar+=d;
				continue;
			}

			j++;

			cnt = 0, num = 0;
			while(j<l && is_digit(s[j]))
			{
				cnt++;
				num = num * 10 + (s[j]-'0');
				j++;
			}

			if(cnt==3)
			{
				d = d*1000+num;
				if(s[j]!='.')
				{
					i=j;
					dollar+=d;
					continue;
				}

				j++;

				num = 0;
				while(j<l && is_digit(s[j]))
				{
					num = num*10+(s[j]-'0');
					j++;
				}

				cent+=num;
				i=j;
			}
			else{
                dollar+=d;
                cent+=num;
			}

			i=j;
		}
	}

	dollar+=cent/100;
	cent%=100;

	stringstream sso;
	sso<<dollar;
	sso>>s;
	//cout<<s<<endl;

	string ss = "";

	for(i=s.size()-1 , j = 1;i>=0;i--,j++)
    {
        ss+=s[i];
        if(j%3==0)
            ss+=".";
    }
    reverse(ss.begin(),ss.end());
    cout<<ss<<".";;

    if(cent<9)
        cout<<0;
    cout<<cent<<endl;

	//main();

    return 0;
}


#include <iostream>
#include <cstring>
#include <iomanip>
#include <cmath>
#include <cstdlib>

using namespace std;

char t[1000];
struct object{ char name[1000]; char price[1000]; };
struct object l[1000];
int n,sf;
double s;

int main()
{
    cin.getline(t,1000);
    int i=0,i1=0,i2=0,i3=0;
    int d=1;

    while(i3<strlen(t))
    {
        i1=i3;
        i2=i1;

        while(!isdigit(t[i2]))
            i2++;

        i3=i2;

        while(isdigit(t[i3])||t[i3]=='.')
            i3++;

    strncpy(l[d].name,t+i1,i2-i1);
    strncpy(l[d].price,t+i2,i3-i2);
    d++;
    }

    for(int i=1;i<=d;i++)
{
    char x[5][3];
    int nr=1;

    char *p;
    p=strtok(l[i].price,".");

    while(p)
    {
        strcpy(x[nr++],p);
        p=strtok(NULL,".");
    }
    nr--;

    if(strlen(x[nr])==2){
        s+=atof(x[nr])*1.00/100;
        nr--;
    }

    for(int i=nr;i>=1;i--)
    {
        int r=atof(x[i])*pow(10,3*(nr-i));
        s+=r;
    }

}
    int c[20],pf,len=1,trio=0;
    pf=ceil((s-floor(s))*100);
    s=floor(s);

    while((int)s!=0)
    {
    c[len++]=(int)s%10;
    trio++;
    if(trio==3){
        c[len++]=-1;
        trio=0;
    }
    s/=10;
    }
    len--;

    for(int i=len;i>=1;i--)
        if(c[i]==-1)
            cout<<".";
    else cout<<c[i];

    if(len==0)
        cout<<0;

    if(pf!=0)
    cout<<".";
    {
        if(pf<10)
            cout<<0;
        cout<<pf;
    }

    //if()

    return 0;
}


#include <iostream>
#include <cstring>
#include <iomanip>
#include <cmath>
#include <cstdlib>

using namespace std;

char t[1010];
struct object{ char name[1000]; char price[20]; };
struct object l[1010];
int n,sf;
double s;
int fake;

int main()
{
    cin.getline(t,1010);
    int i=0,i1=0,i2=0,i3=0;
    int d=1;

    while(i3<strlen(t))
    {
        i1=i3;
        i2=i1;

        while(!isdigit(t[i2]))
            i2++;

        i3=i2;

        while(isdigit(t[i3])||t[i3]=='.')
            i3++;

    strncpy(l[d].name,t+i1,i2-i1);
    strncpy(l[d].price,t+i2,i3-i2);
    d++;
    }

    for(int i=1;i<=d;i++)
{
    if(i==100)
    {
        fake=fake;
    }
    char x[10][3];
    int nr=1;

    char *p;
    p=strtok(l[i].price,".");

    while(p)
    {
        strcpy(x[nr++],p);
        p=strtok(NULL,".");
    }
    nr--;

    if(strlen(x[nr])==2){
        s+=atof(x[nr])*1.00/100;
        nr--;
    }

    for(int j=nr;j>=1;j--)
    {
        char t[4];
        strncpy(t,x[j],3);
        int r=atoi(t)*pow(10,3*(nr-j));
        s+=r;
   //     cout<<(int)s<<endl;
    }
}

    int c[20],pf,len=1,trio=0;
    pf=ceil((s-floor(s))*100);
    s=floor(s);

    while((int)s!=0)
    {
    c[len++]=(int)s%10;
    trio++;
    if(trio==3){
        c[len++]=-1;
        trio=0;
    }
    s/=10;
    }
    len--;

    for(int i=len;i>=1;i--)
        if(c[i]==-1)
            cout<<".";
    else cout<<c[i];

    if(len==0)
        cout<<0;

    if(pf!=0){
    cout<<".";
    {
        if(pf<10)
            cout<<0;
        cout<<pf;
    }
    }
    //if()
cout<<endl<<d;

    return 0;
}


#include <iostream>
#include <cstring>
#include <iomanip>
#include <cmath>
#include <cstdlib>

using namespace std;

char t[1000];
struct object{ char name[1000]; char price[1000]; };
struct object l[1000];
int n,sf;
double s;

int main()
{
    cin.getline(t,1000);
    int i=0,i1=0,i2=0,i3=0;
    int d=1;

    while(i3<strlen(t))
    {
        i1=i3;
        i2=i1;

        while(!isdigit(t[i2]))
            i2++;

        i3=i2;

        while(isdigit(t[i3])||t[i3]=='.')
            i3++;

    strncpy(l[d].name,t+i1,i2-i1);
    strncpy(l[d].price,t+i2,i3-i2);
    d++;
    }

    for(int i=1;i<=d;i++)
{
    char x[5][3];
    int nr=1;

    char *p;
    p=strtok(l[i].price,".");

    while(p)
    {
        strcpy(x[nr++],p);
        p=strtok(NULL,".");
    }
    nr--;

    if(strlen(x[nr])==2){
        s+=atof(x[nr])*1.00/100;
        nr--;
    }

    for(int i=nr;i>=1;i--)
    {
        int r=atof(x[i])*pow(10,3*(nr-i));
        s+=r;
    }

}
    int c[20],pf,len=1,trio=0;
    pf=ceil((s-floor(s))*100);
    s=floor(s);

    while((int)s!=0)
    {
    c[len++]=(int)s%10;
    trio++;
    if(trio==3){
        c[len++]=-1;
        trio=0;
    }
    s/=10;
    }
    len--;

    for(int i=len;i>=1;i--)
        if(c[i]==-1)
            cout<<".";
    else cout<<c[i];

    if(pf!=0)
    cout<<"."<<pf;

    //if()

    return 0;
}


#include <iostream>
#include <cstring>
#include <iomanip>
#include <cmath>
#include <cstdlib>

using namespace std;

char t[1010];
struct object{ char name[1000]; char price[20]; };
struct object l[1010];
int n,sf;
double s;
int fake;

int main()
{
    cin.getline(t,1010);
    int i=0,i1=0,i2=0,i3=0;
    int d=1;

    while(i3<strlen(t))
    {
        i1=i3;
        i2=i1;

        while(!isdigit(t[i2]))
            i2++;

        i3=i2;

        while(isdigit(t[i3])||t[i3]=='.')
            i3++;

    strncpy(l[d].name,t+i1,i2-i1);
    strncpy(l[d].price,t+i2,i3-i2);
    d++;
    }

    for(int i=1;i<=d;i++)
{
    if(i==100)
    {
        fake=fake;
    }
    char x[10][3];
    int nr=1;

    char *p;
    p=strtok(l[i].price,".");

    while(p)
    {
        strcpy(x[nr++],p);
        p=strtok(NULL,".");
    }
    nr--;

    if(strlen(x[nr])==2){
        s+=atof(x[nr])*1.00/100;
        nr--;
    }

    for(int j=nr;j>=1;j--)
    {
        char t[4];
        strncpy(t,x[j],3);
        int r=atoi(t)*pow(10,3*(nr-j));
        s+=r;
   //     cout<<(int)s<<endl;
    }
}

    int c[20],pf,len=1,trio=0;
    pf=ceil((s-floor(s))*100);
    s=floor(s);

    while((int)s!=0)
    {
    c[len++]=(int)s%10;
    trio++;
    if(trio==3 && s>9){
        c[len++]=-1;
        trio=0;
    }
    s/=10;
    }
    len--;

    for(int i=len;i>=1;i--)
        if(c[i]==-1)
            cout<<".";
    else cout<<c[i];

    if(len==0)
        cout<<0;

    if(pf!=0){
    cout<<".";
    {
        if(pf<10)
            cout<<0;
        cout<<pf;
    }
    }

    return 0;
}


#include <iostream>
#include <cstring>
#include <iomanip>
#include <cmath>
#include <cstdlib>

using namespace std;

char t[1000];
struct object{ char name[1000]; char price[1000]; };
struct object l[1000];
int n,sf;
double s;

int main()
{
    cin.getline(t,1000);
    int i=0,i1=0,i2=0,i3=0;
    int d=1;

    while(i3<strlen(t))
    {
        i1=i3;
        i2=i1;

        while(!isdigit(t[i2]))
            i2++;

        i3=i2;

        while(isdigit(t[i3])||t[i3]=='.')
            i3++;

    strncpy(l[d].name,t+i1,i2-i1);
    strncpy(l[d].price,t+i2,i3-i2);
    d++;
    }

    for(int i=1;i<=d;i++)
{
    char x[10][3];
    int nr=1;

    char *p;
    p=strtok(l[i].price,".");

    while(p)
    {
        strcpy(x[nr++],p);
        p=strtok(NULL,".");
    }
    nr--;

    if(strlen(x[nr])==2){
        s+=atof(x[nr])*1.00/100;
        nr--;
    }

    for(int i=nr;i>=1;i--)
    {
        int r=atof(x[i])*pow(10,3*(nr-i));
        s+=r;
    }

}
    int c[20],pf,len=1,trio=0;
    pf=ceil((s-floor(s))*100);
    s=floor(s);

    while((int)s!=0)
    {
    c[len++]=(int)s%10;
    trio++;
    if(trio==3){
        c[len++]=-1;
        trio=0;
    }
    s/=10;
    }
    len--;

    for(int i=len;i>=1;i--)
        if(c[i]==-1)
            cout<<".";
    else cout<<c[i];

    if(len==0)
        cout<<0;

    if(pf!=0){
    cout<<".";
    {
        if(pf<10)
            cout<<0;
        cout<<pf;
    }
    }
    //if()

    return 0;
}


#include <iostream>
#include <cstring>
#include <iomanip>
#include <cmath>
#include <cstdlib>

using namespace std;

char t[1000];
struct object{ char name[1000]; char price[1000]; };
struct object l[1000];
int n,sf;
double s;

int main()
{
    cin.getline(t,1000);
    int i=0,i1=0,i2=0,i3=0;
    int d=1;

    while(i3<strlen(t))
    {
        i1=i3;
        i2=i1;

        while(!isdigit(t[i2]))
            i2++;

        i3=i2;

        while(isdigit(t[i3])||t[i3]=='.')
            i3++;

    strncpy(l[d].name,t+i1,i2-i1);
    strncpy(l[d].price,t+i2,i3-i2);
    d++;
    }

    for(int i=1;i<=d;i++)
{
    char x[10][3];
    int nr=1;

    char *p;
    p=strtok(l[i].price,".");

    while(p)
    {
        strcpy(x[nr++],p);
        p=strtok(NULL,".");
    }
    nr--;

    if(strlen(x[nr])==2){
        s+=atof(x[nr])*1.00/100;
        nr--;
    }

    for(int i=nr;i>=1;i--)
    {
        int r=atof(x[i])*pow(10,3*(nr-i));
        s+=r;
    }

}
    int c[20],pf,len=1,trio=0;
    pf=ceil((s-floor(s))*100);
    s=floor(s);

    while((int)s!=0)
    {
    c[len++]=(int)s%10;
    trio++;
    if(trio==3){
        c[len++]=-1;
        trio=0;
    }
    s/=10;
    }
    len--;

    for(int i=len;i>=1;i--)
        if(c[i]==-1)
            cout<<".";
    else cout<<c[i];

    if(len==0)
        cout<<0;

    if(pf!=0)
    cout<<".";
    {
        if(pf<10)
            cout<<0;
        cout<<pf;
    }

    //if()

    return 0;
}


/*
PE LANGA PLOPII FARA SOT...

Pe lânga plopii fara sot
Adesea am trecut;
Ma cunosteau vecinii totii �
Tu nu m-ai cunoscut.

La geamul tau ce stralucea
Privii atât de des;
O lume toata-ntelegea �
Tu nu m-ai înteles.

De câte ori am asteptat
O soapta de raspuns!
O zi din viata sa-mi fi dat,
O zi mi-era de-ajuns;

O ora sa fi fost amici,
Sa ne iubim cu dor,
S-ascult de glasul gurii mici,
O ora, si sa mor.

Dându-mi din ochiul tau senin
O raza dinadins,
In calea timpilor ce vin
O stea s-ar fi aprins;

Ai fi trait în veci de veci
Si rânduri de vieti,
Cu ale tale brate reci
Inmarmureai maret,

Un chip de-a pururi adorat
Cum nu mai au perechi
Acele zâne ce strabat
Din timpurile vechi.

Caci te iubeam cu ochi pagâni
Si plini de suferinti,
Ce mi-i lasara din batrâni
Parintii din parinti.

Azi nici macar îmi pare rau
Ca trec cu mult mai rar,
Ca cu tristeta capul tau
Se-ntoarce în zadar,

Caci azi le semeni tuturor
La umblet si la port,
Si te privesc nepasator
C-un rece ochi de mort.

Tu trebuia sa te cuprinzi
De acel farmec stânt,
Si noaptea candela s-aprinzi
Iubirii pe pamânt.

(1883, 28 august / 9 septembrie)
*/

#include <iostream>
#include <cstring>
#include <iomanip>
#include <cmath>
#include <cstdlib>

using namespace std;

char t[1010];
struct object{ char name[1000]; char price[20]; };
struct object l[1010];
int n,sf;
int s;
int fake,fracts,fract;

int main()
{
    cin.getline(t,1010);
    int i=0,i1=0,i2=0,i3=0;
    int d=1;
    int fracts=0,fract=0;

    while(i3<strlen(t))
    {
        i1=i3;
        i2=i1;

        while(!isdigit(t[i2]))
            i2++;

        i3=i2;

        while(isdigit(t[i3])||t[i3]=='.')
            i3++;

    strncpy(l[d].name,t+i1,i2-i1);
    strncpy(l[d].price,t+i2,i3-i2);
    d++;
    }

    for(int i=1;i<=d;i++)
{
    /*
    if(i==100)
    {
        fake=fake;
    }
    */

    char x[10][3];
    int nr=1;

    char *p;
    p=strtok(l[i].price,".");

    while(p)
    {
        strcpy(x[nr++],p);
        p=strtok(NULL,".");
    }
    nr--;

    if(strlen(x[nr])==2){
        fracts+=atoi(x[nr]);
        nr--;
    }

    for(int j=nr;j>=1;j--)
    {
        char t[4];
        strncpy(t,x[j],3);
        int r=atoi(t)*pow(10,3*(nr-j));
        s+=float(r);
   //     cout<<(int)s<<endl;
    }
}

    int c[20],pf,len=1,trio=0;
 //   pf=ceil((s-floor(s))*100);
    s+=fracts/100;
    fract=fracts%100;

    while(s!=0)
    {
    c[len++]=s%10;
    trio++;
    if(trio==3 && s>9){
        c[len++]=-1;
        trio=0;
    }
    s/=10;
    }
    len--;

    for(int i=len;i>=1;i--)
        if(c[i]==-1)
            cout<<".";
    else cout<<c[i];

    if(len==0)
        cout<<0;

    if(fract!=0){
    cout<<".";
    {
        if(fract<10)
            cout<<0;
        cout<<fract;
    }
    }

    return 0;
}


#include <iostream>
#include <cstring>
#include <iomanip>
#include <cmath>
#include <cstdlib>

using namespace std;

char t[1000];
struct object{ char name[1000]; char price[1000]; };
struct object l[1000];
int n,sf;
float s;

int main()
{
    cin.getline(t,1000);
    int i=0,i1=0,i2=0,i3=0;
    int d=1;

    while(i3<strlen(t))
    {
        i1=i3;
        i2=i1;

        while(!isdigit(t[i2]))
            i2++;

        i3=i2;

        while(isdigit(t[i3])||t[i3]=='.')
            i3++;

    strncpy(l[d].name,t+i1,i2-i1);
    strncpy(l[d].price,t+i2,i3-i2);
    d++;
    }

    for(int i=1;i<=d;i++)
{
    char x[5][3];
    int nr=1;

    char *p;
    p=strtok(l[i].price,".");

    while(p)
    {
        strcpy(x[nr++],p);
        p=strtok(NULL,".");
    }
    nr--;

    if(strlen(x[nr])==2){
        s+=atoi(x[nr])*1.00/100;
        nr--;
    }
/*
    for(int i=1;i<=nr;i++)
    {
        s+=

    }
}
*/
 /*   for(int j=1;j<=nr;j++)
        cout<<x[j]<<" ";

    cout<<endl;
*/

}

cout<<setprecision(2)<<s*1.00;

    return 0;
}


#include <iostream>
#include <cstring>

using namespace std;

char t[1000];
struct object{ char name[1000]; char price[1000]; };
struct object l[1000];
int n,sf;

int main()
{
    cin.getline(t,1000);
    int i=0,i1=0,i2=0,i3=0;
    int d=1;

    while(i3<strlen(t))
    {
        i1=i3;
        i2=i1;

        while(!isdigit(t[i2]))
            i2++;

        i3=i2;

        while(isdigit(t[i3])||t[i3]=='.')
            i3++;

    strncpy(l[d].name,t+i1,i2-i1);
    strncpy(l[d].price,t+i2,i3-i2);
    d++;
    }

    for(int i=1;i<=d;i++)
        cout<<l[d].name<<" "<<l[d].price<<endl;

    return 0;
}