#include <vector>
#include <iostream>
#include <valarray>
#include <string>
#include <algorithm>
#include <set>
#include <complex>
#include <cmath>
#include <cstdio>
#define fst first
#define snd second
#define rep(i,n) for(ull i = 0;i<(n);i++)
#define rep1(i,n) for(ull i = 1;i<=(n);i++)
#define revrep(i,n) for(ull i = (n-1);i>=0;i--)
#define all(n) (n).begin(),(n).end()
#define show(x) cout << "debug " << #x << ":" << x << endl;
#define showvec(x) cout << endl << "debug " << #x << ";" << endl; \
    for(ull __i = 0;__i < x.size();__i++){ \
        for(ull __j = 0;__j<x[0].size();__j++){ \
            cout << x[__i][__j] << " "; \
        } \
        cout << endl; \
    } \
    cout << endl;
using namespace std;

typedef unsigned long long ull;
typedef long long ll;
typedef complex<double> xy_t;
double dot_product(xy_t a, xy_t b){
	return (conj(a)*b).real();
}

double cross_product(xy_t a, xy_t b){
	return (conj(a)*b).imag();
}

xy_t P[110];

int main(){
	int N = 0;
	double x,y;
	while(~scanf("%lf,%lf",&x,&y)){
		P[N++] = xy_t(x,y);	
	}
	double sum = 0.0;
	for(int i = 0; i+2 < N; i++){
		xy_t a=P[0], b=P[(i+1)%N], c=P[(i+2)%N];
		sum += abs(cross_product(a-b,a-c));
	}
	printf("%.6f\n",abs(sum)/2);
	return 0;
}