#include<cstdio>
#include<cstdlib>
#include<cstring>
#include<cmath>
#include<cassert>
#include<iostream>
#include<sstream>
#include<string>
#include<vector>
#include<queue>
#include<set>
#include<map>
#include<utility>
#include<numeric>
#include<algorithm>
#include<bitset>
#include<complex>

using namespace std;

typedef long long Int;
typedef vector<int> vint;
typedef pair<int,int> pint;
#define mp make_pair

template<class T> void pv(T a, T b) { for (T i = a; i != b; ++i) cout << *i << " "; cout << endl; }
template<class T> void chmin(T &t, T f) { if (t > f) t = f; }
template<class T> void chmax(T &t, T f) { if (t < f) t = f; }
int in() { int x; scanf("%d", &x); return x; }

struct IInt{
	int s[200];
	IInt(){memset(s,0,sizeof(s));}
	void mul(){
		for(int i=198;i>=0;i--){
			s[i+1]=s[i];
		}
		s[0]=0;
	}
	void add(IInt ii){
		for(int i=0;i<199;i++){
			s[i]+=ii.s[i];
			if(s[i]>10){
				s[i]-=10;s[i+1]++;
			}
		}
	}
	void add(int ii){
		s[0]+=ii;
		for(int i=0;i<199;i++){
			if(s[i]>10){
				s[i]-=10;s[i+1]++;
			}
		}
	}
};

int main() {
	string str;
	IInt res;
	//bool out=false;
	//for(int k=199;k>=0;k--){
	//			/*if(res.s[k])out=true;
	//			if(out)*/cout<<res.s[k];
	//		}
	//		cout<<endl;
	while(cin>>str){
		int i=0;
		IInt num;
		for(i=0;i<str.size();i++){
			if('0'<=str[i]&&str[i]<='9'){
				num.mul();
				num.add(str[i]-'0');
			}else{
			//for(int k=199;k>=0;k--){
			//	cout<<num.s[k];
			//}
			//cout<<endl;
			//for(int k=199;k>=0;k--){
			//	cout<<res.s[k];
			//}
			//cout<<endl;
				res.add(num);
				for(int k=0;k<200;k++)num.s[k]=0;
			}
			
		}
	}
	bool out=false;
	for(int k=199;k>=0;k--){
		if(res.s[k])out=true;
		if(out)cout<<res.s[k];
	}
	return 0;
}