#include <cmath>
#include <cstdio>
#include <iomanip>
#include <iostream>
#include <vector>


#define EPSILON 1e-9


class vector_t {
public:
  double x;
  double y;
  double z;

public:
  vector_t(double x = 0, double y = 0, double z = 0) : x(x), y(y), z(z) {};

public:
  double operator*(const vector_t& v) const {
    return x * v.x + y * v.y + z * v.z;
  };

  vector_t operator^(const vector_t& v) const {
    return vector_t(y * v.z - z * v.y,
                    z * v.x - x * v.z,
                    x * v.y - y * v.x);
  };

public:
  double length() const {
    return sqrt(*this * *this);
  };
};


class point_t {
public:
  double x;
  double y;
  double z;
  double w;

public:
  point_t(double x = 0, double y = 0, double z = 0, double w = 1) : x(x), y(y), z(z), w(w) {};
  
public:
  vector_t operator-(const point_t& p) const {
    return vector_t(x - p.x, y - p.y, z - p.z);
  };
};


int main(int argc, char** argv)
{
  std::vector<point_t> points;

  double x, y;

  while (fscanf(stdin, "%lf,%lf", &x, &y) == 2)
    points.push_back(point_t(x, y));

  double s = 0;

  for (int i = 1, size = points.size(); i < size - 1; i ++) {
    vector_t v1(points[i] - points[0]), v2(points[i+1] - points[0]);

    s += std::abs((v1 ^ v2).z);
  }

  s /= 2;
  
  std::cout << std::setprecision(16) << s << std::endl;
  
  return 0;
}