Problem: Write a program that reads the coordinates of the vertices of a convex n-sided polygon (a polygon whose internal angles are less than 180 degrees, that is, a polygon that is not dented) and outputs its area. The vertices are named Vertex 1, Vertex 2, Vertex 3, ... Vertex n according to the order of edge connections.

However, n is 3 or more and 20 or less. You can also use the following formula to find the area S from the lengths a, b, and c of the three sides of the triangle.

<image>



input

The input is given in the following format:


x1, y1
x2, y2
::
xn, yn


xi and yi are real numbers that represent the x and y coordinates of vertex i, respectively.

output

Outputs the area S (real number) on one line. The output can contain an error of 0.000001 or less.

Example

Input

0.0,0.0
0.0,1.0
1.0,1.0
2.0,0.0
1.0,-1.0


Output

2.500000

Solution (in JAVA):

Solution:
import java.awt.geom.Point2D;
import java.util.Scanner;
 
public class Main {
    public static void main(String[] args) throws java.io.IOException {
        Scanner sc = new Scanner(System.in);
        int c=0;
        Point2D.Double[] v = new Point2D.Double[20];
        sc.useDelimiter(",| ?\n");
        while(sc.hasNext()){
                v[c] = new Point2D.Double(sc.nextDouble(), sc.nextDouble());
                c++;
        }
        int n=c;
            double sum = 0;
            for (int i = 0; i < n - 1; i++) {
                sum += ep(v[i], v[i + 1]);
            }
            sum += ep(v[n - 1], v[0]);
            double ans = Math.abs(1.0 * sum / 2.0);
            System.out.printf("%.6f\n",ans);
        }
 
    public static double ep(Point2D.Double a, Point2D.Double b) {
        return a.x * b.y - a.y * b.x;
    }
}