#include <bits/stdc++.h>

using namespace std;

const double EPS = 1e-8;
const double INF = 1e12;
typedef complex<double> P;
namespace std {
    bool operator < (const P& a, const P& b) {
        return real(a) != real(b) ? real(a) < real(b) : imag(a) < imag(b);
    }
}
double cross(const P& a, const P& b) {
    return imag(conj(a)*b);
}
double dot(const P& a, const P& b) {
    return real(conj(a)*b);
}

struct L : public vector<P> {
    L(const P &a, const P &b) {
        push_back(a); push_back(b);
    }
};

typedef vector<P> G;

double area2(G& p) {
    double A = 0;
    for (int i = 0; i < p.size(); ++i)
        A += cross(p[i], p[i+1]);
    return A;
}

int main(){
    G g;
    double n, m;
    while(scanf("%lf,%lf", &n, &m) != EOF){g.push_back(P(n, m));}
    printf("%.10f\n", abs(area2(g)/2.));
}