// start: 23:15
#include <cstdio>
#include <cstdlib>
#include <cmath>
#include <climits>
#include <cctype>
#include <algorithm>
#include <numeric>
#include <iostream>
#include <string>
#include <vector>
#include <queue>
#include <set>
#include <map>
#include <complex>
#include <sstream>
#include <deque>

#define REP(i, n) for ( int i = 0; i < n; i++ )

using namespace std;

typedef pair<int, int> xy;

double triangle(double x1, double y1, double x2, double y2, double x3, double y3) {
    // 正規化（ベクトルに変換）
    // 掛け算
    // 1/2
    double  v1x = x3 - x1,
            v1y = y3 - y1,
            v2x = x2 - x1,
            v2y = y2 - y1;
    return 0.5 * abs(v1x * v2y - v1y * v2x);
}

double polygon(int edge, vector<xy> points) {
    double sum = 0.0;
    xy base = points[0];
    for ( int i = 1; i < edge - 1; i++ ) {
        xy  p1 = points[i],
            p2 = points[i+1];
        // cout << base.first << " " << base.second << " " << p1.first << " " << p1.second << " " << p2.first << " " << p2.second << endl;
        sum += triangle(base.first, base.second, p1.first, p1.second, p2.first, p2.second);
    }
    return sum;
}


int main() {
    int i = 0;
    double x, y;

    vector<xy> ps(20);

    while(scanf("%lf,%lf", &x, &y) != EOF) {
        ps[i++] = make_pair(y, x);
    }

    printf("%.6lf\n", polygon(i, ps));

    return 0;
}