#include<iostream>
#include<complex>
#include<array>
#include<vector>
#include<cstdio>
using namespace std;

const double EPS = 1e-10;
template<class T>
bool eq(const T& a, const T& b) {return abs(a - b) < EPS;}

typedef  complex<double> point;

double cross(const point& a, const point& b) {
	return imag(conj(a)*b);
}
double dot(const point& a, const point& b) {
	return real(conj(a)*b);
}
typedef array<point, 2> line;

point projection(const line& l, const point& p) {
	double t = dot(p-l[0], l[0]-l[1]) / norm(l[0]-l[1]);
	return l[0] + t*(l[0]-l[1]);
}

point reflection(const line& l, const point& p) {
	return p + 2. * (projection(l, p) - p);
}

int main()
{
  double x0,y0,x1,y1,xa,ya;
  char tt;
  for(;cin>>x0>>tt>>y0>>tt>>x1>>tt>>y1>>tt>>xa>>tt>>ya;)
    {
      line l;
      l[0]=point(x0,y0);
      l[1]=point(x1,y1);
      point p=point(xa,ya);
      point ans=reflection(l,p);
      printf("%.10lf %.10lf\n",ans.real(),ans.imag());
    }
}