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.util.*;
public class Main {
	static Scanner sc = new Scanner(System.in);
	static ArrayList<Double> x = new ArrayList<Double>();
	static ArrayList<Double> y = new ArrayList<Double>();
	
	public static void main(String[] args) {
		read();
		solve();
	}
	
	static void read(){
		while(sc.hasNext()){
			String[] in = sc.next().split(",");
			x.add(Double.parseDouble(in[0]));
			y.add(Double.parseDouble(in[1]));
		}
	}
	
	static void solve(){
		int n = x.size();
		double px = 0, py = 0;
		for(int i = 0; i < x.size() && i < y.size(); i++){
			px += x.get(i);
			py += y.get(i);
		}
		px = px/n; py = py/n;
		ArrayList<Double> tri = new ArrayList<Double>();
		for(int i = 0; i < x.size()-1 && i < y.size()-1; i++){
			double a = Math.hypot(px-x.get(i), py-y.get(i));
			double b = Math.hypot(px-x.get(i+1), py-y.get(i+1));
			double c = Math.hypot(x.get(i+1)-x.get(i), y.get(i+1)-y.get(i));
			double z = (a+b+c)/2;
			tri.add(Math.sqrt(z*(z-a)*(z-b)*(z-c)));
		}
		double a = Math.hypot(px-x.get(0), py-y.get(0));
		double b = Math.hypot(px-x.get(x.size()-1), py-y.get(y.size()-1));
		double c = Math.hypot(x.get(x.size()-1)-x.get(0), y.get(y.size()-1)-y.get(0));
		double z = (a+b+c)/2;
		tri.add(Math.sqrt(z*(z-a)*(z-b)*(z-c)));
		double res = 0;
		for(int i = 0; i < tri.size(); i++){
			res += tri.get(i);
		}
		System.out.println(res);
	}

}