#include <iostream>
#include <iomanip>
#include <vector>
#include <string>
#include <stack>
#include <queue>
#include <deque>
#include <set>
#include <map>
#include <algorithm>
#include <sstream>
#include <cstdlib>
#include <cstring>
#include <functional>
#include <numeric>
#include <cmath>
#include <climits>
#include <limits>
#include <cfloat>
#include <fstream>

using namespace std;

struct P{
	double x, y;
};
#define EPS 1e-9
int main()
{
//	cut here before submit 
//	freopen ("testcase.sp", "r", stdin );
	string str = "";

	while (getline (cin, str ) ){
		while (str.find(',') != string::npos ){
			str = str.replace(str.find(','), 1, " " );
		} // end while
		P p1, p2, q, r;
		stringstream ss(str);
		ss >> p1.x >> p1.y >> p2.x >> p2.y >> q.x >> q.y;
		double X = p2.x - p1.x;
		double Y = p2.y - p1.y;


		if (fabs (X) > EPS && fabs(Y) > EPS ){
			r.x = ( (X*X - Y*Y)*q.x + (2.*X*Y)*q.y + 2.*Y*Y*p1.x + 2.*X*Y*p1.y ) / (X*X + Y*Y );
			r.y = (2.*X*Y*q.x - (X*X - Y*Y)*q.y - 2.*X*Y*p1.x + 2.*X*X*p1.y ) / (X*X + Y*Y );
		}else if (fabs (X) <= EPS ){
			r.x = -q.x + 2.*p1.x;
			r.y = q.y;
		}else{
			r.x = q.x;
			r.y = -q.y + 2.*p1.y;
		} // end if

		printf ("%.6lf %.6lf\n", r.x, r.y );

	} // end loop
		
	return 0;
}