#include <cmath>
#include <cstdio>
#include <complex>
#include <algorithm>
#define Point complex<long double>
#define px real()
#define py imag()
using namespace std;
// ------ Classes ------ //
class Segment {
public:
	Point p1, p2;
	Segment(Point p1_, Point p2_) : p1(p1_), p2(p2_) {};
	Segment(long double p1x, long double p1y, long double p2x, long double p2y) : p1(Point(p1x, p1y)), p2(Point(p2x, p2y)) {};
	friend bool operator==(const Segment& s1, const Segment& s2) { return (s1.p1 == s2.p1 && s1.p2 == s2.p2) || (s1.p1 == s2.p2 && s1.p2 == s2.p1); }
	friend bool operator!=(const Segment& s1, const Segment& s2) { return !(s1 == s2); }
};
class Line {
public:
	Point p1, p2;
	Line(Point p1_, Point p2_) : p1(p1_), p2(p2_) {};
	Line(long double p1x, long double p1y, long double p2x, long double p2y) : p1(Point(p1x, p1y)), p2(Point(p2x, p2y)) {};
	friend bool operator==(const Line& s1, const Line& s2) { return (s1.p1 == s2.p1 && s1.p2 == s2.p2) || (s1.p1 == s2.p2 && s1.p2 == s2.p1); }
	friend bool operator!=(const Line& s1, const Line& s2) { return !(s1 == s2); }
};
// ------ Functions ------ //
long double dot(const Point& a, const Point& b) { return a.px * b.px + a.py * b.py; }
long double crs(const Point& a, const Point& b) { return a.px * b.py - a.py * b.px; }
Point prj(const Segment& a, const Point& b) {
	Point c = a.p2 - a.p1;
	return a.p2 + c * dot(b - a.p1, norm(c));
}
Point rfl(const Segment& a, const Point& b) {
	return b + (prj(a, b) - b) * 2.0L;
}
double xa, ya, xb, yb, xc, yc;
int main() {
	while(~scanf("%lf,%lf,%lf,%lf,%lf,%lf", &xa, &ya, &xb, &yb, &xc, &yc)) {
		Point p = rfl(Segment(xa, ya, xb, yb), Point(xc, yc));
		printf("%.9Lf %.9Lf\n", p.px, p.py);
	}
	return 0;
}